AND为java编译模式

时间:2014-05-20 10:25:38

标签: java regex

我对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合并为一个?

1 个答案:

答案 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
}