在附加的代码中,我试图修改 String toParse =“love love koo love love koo”; 并获得输出
结果爱情结果爱情
但我正在使用的模式
爱[^辜] *
会给我输出结果
结果爱l结果爱l
即在第一次出现'k'或'o'时它的分裂, 但我的意图是第一次出现“koo”它必须拆分,这样我才能得到理想的结果。简而言之,我的目的是创建一个模式,直到第一次出现“koo”。
我还附上了我的java代码。
public static void main(String[] args) {
// regular expression here
Pattern pattern = Pattern.compile("love[^koo]*");
// String here
String toParse = "love love koo love love koo";
Matcher matcher = pattern.matcher(toParse);
boolean found = false;
while (matcher.find()) {
System.out.println("Result "
+ toParse.substring(matcher.start(), matcher.end()));
found = true;
}
if (!found) {
// console.format("No match found.%n");
System.out.println("No match found");
}
}
答案 0 :(得分:2)
如果我理解你的问题是正确的,并且你希望得到所有的东西直到koo,你的正则表达式应该是:
"(.+?)koo"
您的结果在群组(1)
中while (matcher.find()) {
System.out.println("Result "+ matcher.group(1));
found = true;
}
答案 1 :(得分:0)
保持简单,分裂......
String str = "love love koo love love koo";
for (String s : str.split("koo *")) {
System.out.print("Result " + s);
}