Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要字符串mattcher正则表达式_Java_Regex_String_Matcher - Fatal编程技术网

Java 需要字符串mattcher正则表达式

Java 需要字符串mattcher正则表达式,java,regex,string,matcher,Java,Regex,String,Matcher,我使用matcher.find方法,使用matcher.find方法,使用matcher的java代码查找字符串中的出现次数 下面是我的代码 String text = "INCLUDES(ABC) EXCLUDES(ABC) EXCLUDES(ABC) INCLUDES(EFG) INCLUDES(IJK)"; String patternString = "INCLUDES(.)"; Pattern pattern = Pattern.compile(patternString); Ma

我使用matcher.find方法,使用matcher.find方法,使用matcher的java代码查找字符串中的出现次数

下面是我的代码

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(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());
}

是否只需要包含的输出?那么预期的输出是什么呢?这只是在。大概