我对java regexp很新,并尝试编译一个简化了这个的模式:
String str1;
String str2;
String str3;
String str4;
String str;
if ((str.contains(str1) || str.contains(str3)) &&
str.contains(str3) || str.contains(str)) {
return true;
} else {
return false;
}
我发现我可以用"|"
进行OR,但是如何编译AND?
我希望能够编译模式并检查许多具有良好性能的字符串。
编辑:
我现在得到了这个:
private static boolean checkPatternOR() {
String patternString = "foo" ;
Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
Matcher matcher1 = pattern.matcher("foo bar");
Matcher matcher2 = pattern.matcher("something else");
System.out.println("does it match? " + (matcher1.lookingAt() && matcher2.lookingAt()));
return true;
}
如何将matcher1和matcher2合并为一个?
答案 0 :(得分:0)
// [] is how you match regex patterns by OR
if(str.matches("[(*str1 here*)(*str2 here*)(*etc*)]")
// best to separate AND into a separate regex
&& str.matches("regex here")) {
// do whatever
}
如果我理解你的话。
如果没有,那么只需用括号括起你的Java OR语句(||,||,||):
if((str.contains(str1) || str.contains(str2) && (str.contains(str3)) {
// do whatever
}