"abcdefg"匹配(?<name1>abc)|(?<name2>efg)
获得了一个匹配组abc
那么,我怎么知道匹配组abc是由name1还是name2匹配的呢?
3 个解决方案
#1
你好像对正则表达式的理解有错误。。。
如果你需要获取元组的话使用
\1,\2,\3,\4
如果你需要获取元组的话使用
\1,\2,\3,\4
#2
如果每次matcher.find()成立,那么哪个组获取的内容不为null那么就是匹配对应的组
---------- java ----------
group name1:abc
group name2:null
group name1:null
group name2:def
Output completed (1 sec consumed) - Normal Termination
---------- java ----------
group name1:abc
group name2:null
group name1:null
group name2:def
Output completed (1 sec consumed) - Normal Termination
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test{
public static void main(String[] args){
String content = "abcdef";
String regex = "(?<name1>abc)|(?<name2>def)";
Matcher matcher = Pattern.compile(regex).matcher(content);
while(matcher.find()){
System.out.printf("group name1:%s%n",matcher.group("name1"));
System.out.printf("group name2:%s%n",matcher.group("name2"));
}
}
}
#3
正则不太熟、
#1
你好像对正则表达式的理解有错误。。。
如果你需要获取元组的话使用
\1,\2,\3,\4
如果你需要获取元组的话使用
\1,\2,\3,\4
#2
如果每次matcher.find()成立,那么哪个组获取的内容不为null那么就是匹配对应的组
---------- java ----------
group name1:abc
group name2:null
group name1:null
group name2:def
Output completed (1 sec consumed) - Normal Termination
---------- java ----------
group name1:abc
group name2:null
group name1:null
group name2:def
Output completed (1 sec consumed) - Normal Termination
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test{
public static void main(String[] args){
String content = "abcdef";
String regex = "(?<name1>abc)|(?<name2>def)";
Matcher matcher = Pattern.compile(regex).matcher(content);
while(matcher.find()){
System.out.printf("group name1:%s%n",matcher.group("name1"));
System.out.printf("group name2:%s%n",matcher.group("name2"));
}
}
}
#3
正则不太熟、