在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
上匹配不,这不是正则表达式的工作方式。您必须检查两种不同的模式以查看它们是否都匹配。不,正则表达式不是这样工作的。您必须检查两种不同的模式以查看它们是否都匹配。