java 用正则的时候目标字符串会出现特殊字符,如果不处理这些字符会报错java.util.regex.PatternSyntaxException
怎么屏蔽掉这些字符呢?比如目标是
String str="第三 (在这里~)"
的时候用正则就会在~处报错

解决方案 »

  1.   

    如果是正常字符,请用Matcher.quoteReplacement过滤一下,就不用自己转义了
      

  2.   


    如果String str="开始,这样么~)";好像不行
      

  3.   

    那就用一楼的方案啊,自动帮你处理所有转义字符,不是很好?String str = Matcher.quoteReplacement("开始,这样么~)");
      

  4.   

    String str = Matcher.quoteReplacement("开始,这样么~)");
    Pattern pattern = Pattern.compile(str);这样是报错的
    Exception in thread "main" java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 6
    开始,这样么~)
      

  5.   

    搞错了,Sorry,应该是:String normal = Pattern.quote("开始,这样么~)");
    Pattern pattern = Pattern.compile(normal);