Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 亵渎词正则表达式匹配不起作用时+不正确匹配_Java_Regex_Word Boundary - Fatal编程技术网

Java 亵渎词正则表达式匹配不起作用时+不正确匹配

Java 亵渎词正则表达式匹配不起作用时+不正确匹配,java,regex,word-boundary,Java,Regex,Word Boundary,模式报价示例\Qshi+\E模式报价示例\Qshi+\E 假的 预期:正确 我正在使用java 7。单词边界转义是\\b而不是\b 模式引用示例\Qshi+\E模式引用示例\b\Qshi+\E\b false-->不工作+字符是一个特殊字符。您需要使用反斜杠对其进行转义:\+无法转义,这会引发编译时错误@AutomatedChaos-无效的转义序列有效的转义序列是\b\t\n\f\r\\'\\类似的序列 String stre = "da shi+ jia"; profaneWord= "shi

模式报价示例\Qshi+\E模式报价示例\Qshi+\E 假的

预期:正确

我正在使用java 7。

单词边界转义是\\b而不是\b


模式引用示例\Qshi+\E模式引用示例\b\Qshi+\E\b false-->不工作+字符是一个特殊字符。您需要使用反斜杠对其进行转义:\+无法转义,这会引发编译时错误@AutomatedChaos-无效的转义序列有效的转义序列是\b\t\n\f\r\\'\\类似的序列
String stre = "da shi+ jia";
profaneWord= "shi+";
boolean flag = isContain(stre, profaneWord);
private static boolean isContain(String source, String subItem) {
    String pattern = subItem;
    String pat = Pattern.quote(pattern);
    System.out.println("pattern quote example  " + pat);
    Pattern p = Pattern.compile("\b"+pat+"\b");
    System.out.println("pattern quote example  " + p.toString());
    Matcher m = p.matcher(source);
    return m.find();
}
Pattern.compile("\\b"+pat+"\\b");