gpt4 book ai didi

java - 如何查找字符串中的字符模式偏移量

转载 作者:行者123 更新时间:2023-12-01 17:29:44 26 4
gpt4 key购买 nike

我有一个文本文件,其中包含带有换行符的文本,如下所示。我将该文本文件读入字符串

random Text
State v. USA
some more text
USA v.
NY
Some more text
USA
v.LA , MN v. ND
USA vs. MN

我想知道像[Some word opening with cap] v.[Some word opening with cap]这样的模式的偏移量(即开始和结束字符索引)

或者[某些以大写字母开头的单词]与[某些以大写字母开头的单词]

对于上面的例子“州诉美国”=> 开始=11 和结束=22

“美国诉。 纽约” => 开始=36 和结束=45

我从这样的东西开始 http://rubular.com/r/T7Ii2WDADw这并没有涵盖所有情况。

因此,程序可以返回一个 map ,其中键是 Start+","+End,值是实际文本,例如“State v. USA”

最佳答案

要涵盖这两种情况,您需要使用此正则表达式。

\w+\s((v.)|(vs.))\s\w+

在java代码中。

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Testapp {

public static void main(String[] args) {
String text = "USA v. Russia \n Some other text \n India vs. Aus";
String regex="\\w+\\s((v.)|(vs.))\\s\\w+";
Pattern p = Pattern.compile(regex);
Matcher matcher = p.matcher(text);

while (matcher.find()) {
System.out.println(matcher.group()+ ":" +"start =" + matcher.start() + " end = " + matcher.end());
}
}
}

输出:

Starting & ending index ofUSA v. Russia:start=0 end = 13
Starting & ending index ofIndia vs. Aus:start=34 end = 47

关于java - 如何查找字符串中的字符模式偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12268167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com