条件匹配在正则表达式中十分重要,下面简单根据我的了解介绍一些:
?(A)B 表示只有当A存在时才会匹配B
下面的代码验证:
String pattern="/?(A)B";
String str="B";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(str);
boolean result=m.matches();
if(result) {
System.out.println("匹配");
}
else {
System.out.println("不匹配");
}
上述为A不存在B存在的情况,结果为不匹配
String pattern="/?(A)B";
String str="AB";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(str);
boolean result=m.matches();
if(result) {
System.out.println("匹配");
}
else {
System.out.println("不匹配");
}
上述为AB都存在的情况结果为匹配
?(A)B|C 若A存在,匹配B,否则,匹配C
下面的代码验证:
String pattern="/?(A)B|C";
String str="AB";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(str);
boolean result=m.matches();
if(result) {
System.out.println("匹配");
}
else {
System.out.println("不匹配");
}
上述为A存在的情况,结果为匹配
String pattern="/?(A)B|C";
String str="C";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(str);
boolean result=m.matches();
if(result) {
System.out.println("匹配");
}
else {
System.out.println("不匹配");
}
上述为A不存在的情况,结果为匹配