Java正则表达式检查符号

时间:2012-08-25 15:26:40

标签: java regex

  

可能重复:
  Regular expression for excluding special characters

如何检查字符串是否包含符号?假设我有这个字符串

"SUGAR :::: SUGAR"

我想检查该字符串是否包含=以下符号

":,?,!@#$%^&*()";

我试过这个

         Pattern p = Pattern.compile("[?,!,@,$,%,^,&,*,(,)]");
         Matcher m = p.matcher("?");
         boolean b = m.matches();
         System.out.println(b);

但是,如果文本包含多个符号

,该怎么办?

3 个答案:

答案 0 :(得分:1)

试试这个:

Pattern pat = Pattern.compile("[:?!@#$%^&*()]");
String  str = "SUGAR :::: SUGAR";
Matcher m = pat.matcher(str);
if (m.find()) {
    System.out.println("string contains pattern");
}

以上将检查字符串的任何部分是否包含至少模式中任何符号的一次出现(无需将它们与,分开)。

答案 1 :(得分:1)

番石榴可能是?

 CharMatcher matcher = CharMatcher.anyOf(":,?,!@#$%^&*()");
 boolean result = matcher.matchesAnyOf("SUGAR :: SUGAR");
 System.out.println(result);

答案 2 :(得分:0)

只需匹配包含这些字符的集合:[:,?!@#$%^&*()]

如果您想检查符号-,请将其放置在集合的末尾:[...-]

无需用逗号分隔集合中的元素。

如果你想检查任何非字母数字使用\ W而不是:[\ W_](因为\ W与_不匹配)