Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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正则表达式中匹配多个组_Java_Regex - Fatal编程技术网

在Java正则表达式中匹配多个组

在Java正则表达式中匹配多个组,java,regex,Java,Regex,是否可以在正则表达式中找到与字符串特定部分匹配的所有组 Pattern pattern = Pattern.compile("(green trousers)|(green\\s+t)"); Matcher matcher = pattern.matcher("my beautiful green trousers are red!"); while (matcher.find()) { for (int i = 1; i <= matcher.gr

是否可以在正则表达式中找到与字符串特定部分匹配的所有组

    Pattern pattern = Pattern.compile("(green trousers)|(green\\s+t)");
    Matcher matcher = pattern.matcher("my beautiful green trousers are red!");
    while (matcher.find()) {
        for (int i = 1; i <= matcher.groupCount(); i++) {
            if (matcher.group(i) != null) {
                System.out.println("group " + i + " matched");
            }
        }
    }
Pattern-Pattern=Pattern.compile(“(绿色裤子)|(绿色\\s+t)”);
Matcher Matcher=pattern.Matcher(“我漂亮的绿色裤子是红色的!”);
while(matcher.find()){

对于(inti=1;i没有直接的方法,正则表达式将从左到右使用字符串,直到找到匹配为止


使用
|
意味着它将首先检查第一个备选方案,如果不匹配,则返回并尝试第二个备选方案
匹配,因此搜索停止并返回匹配。

没有直接的方法,正则表达式将从左到右使用字符串,直到找到匹配为止


使用
|
意味着它将首先检查第一个备选方案,如果不匹配,则返回并尝试第二个备选方案匹配,因此搜索停止并返回匹配。

无法检查单个正则表达式中的所有大小写,但是,有一些结构允许您检查特定子字符串的多个子模式是否匹配,这些结构称为»零宽度断言«(请参阅»特殊结构«下的)

例如:

"(?=[ab]{5})[bc]{5}"

将只在
bbbbb

上匹配无法检查单个正则表达式中的所有大小写,但是,有一些结构允许您检查是否有多个子模式与特定子字符串匹配,这些结构称为»零宽度断言«(请参阅»特殊结构«下的)

例如:

"(?=[ab]{5})[bc]{5}"

将仅在
bbbbb

上匹配不,这不是正则表达式的工作方式。您必须检查两种不同的模式以查看它们是否都匹配。不,正则表达式不是这样工作的。您必须检查两种不同的模式以查看它们是否都匹配。