我想用正则匹配字符串中的非法字符,然后进行替换。比如:'"# and or 
我写的正则是
['"#( and )( or )]
结果是单个字符都可以匹配,但只要出现a,或是n,或是d……都会进行匹配,而我想要的结果是只对“ and ”、“ or ”整个字符串进行匹配。
求大神指点!

解决方案 »

  1.   

    LZ所指的非法字符,是否是非数字、字母的字符呢?如果是这样,可以这么操作:
    String str = "!@#asdf  asdn #@#%@";
    String allowedStr = str.replaceAll("\\W+", "和谐");
    System.out.println(allowedStr);(如果不想替换成"和谐",自己改下吧,呵呵~)
      

  2.   


    比如,从前台输入的字符串为"abc#' and oo"
    我想将字符串中的"'"(单引号)、" and "(前后带空格的and)、"#"这些东西替换掉,该如何匹配
    我写的['"#( and )( or )]将开头的“a”都替换了,我只想匹配整个“ and ”和我说的那些特殊字符,应该怎么做
      

  3.   


    比如,从前台输入的字符串为"abc#' and oo"
    我想将字符串中的"'"(单引号)、" and "(前后带空格的and)、"#"这些东西替换掉,该如何匹配
    我写的['"#( and )( or )]将开头的“a”都替换了,我只想匹配整个“ and ”和我说的那些特殊字符,应该怎么做
      

  4.   

    String regex="#| and |'| or ";