gpt4 book ai didi

java - 需要字符串匹配器正则表达式

转载 作者:行者123 更新时间:2023-12-01 14:52:33 25 4
gpt4 key购买 nike

我有带有匹配器的java代码,可以使用mattcher.find方法查找字符串中出现的次数。

以下是我的代码

String text = "INCLUDES(ABC) EXCLUDES(ABC) EXCLUDES(ABC) INCLUDES(EFG) INCLUDES(IJK)";

String patternString = "INCLUDES(.)";

Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(text);

int count = 0;
while(matcher.find()) {
count++;
System.out.println("found: " + count + " : "
+ matcher.start() + " - " + matcher.end());
System.out.println(" - " +text.substring(matcher.start(), matcher.end()));
}

返回输出为

found: 1 : 0 - 9
- INCLUDES(
found: 2 : 42 - 51
- INCLUDES(
found: 3 : 56 - 65
- INCLUDES(

而不是我希望正则表达式查找并返回出现次数作为 INCLUDES(*)

任何解决方案都适用。预期输出应该是循环打印值

INCLUDES(ABC)
INCLUDES(EFG)
INCLUDES(IJK)

最佳答案

您的正则表达式不正确。您只是捕获括号内的单个字符,因此您的正则表达式将失败。

尝试使用这个:-

"\\w+\\(.*?\\)"

然后获取group(0),或者只是group():-

String text = "INCLUDES(ABC) EXCLUDES(ABC) EXCLUDES(ABC) INCLUDES(ABC) INCLUDES(ABC)";
Matcher matcher = Pattern.compile("\\w+\\(.*?\\)").matcher(text);

while (matcher.find()) {
System.out.println(matcher.group());
}

关于java - 需要字符串匹配器正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14694692/

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