1

可能重复:
排除特殊字符的正则表达式

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

"SUGAR :::: SUGAR"

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

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

我试过这个

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

但是,如果文本包含该符号的多次出现怎么办

4

3 回答 3

1

试试这个:

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

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

于 2012-08-25T15:31:58.820 回答
1

番石榴可能是?

 CharMatcher matcher = CharMatcher.anyOf(":,?,!@#$%^&*()");
 boolean result = matcher.matchesAnyOf("SUGAR :: SUGAR");
 System.out.println(result);
于 2012-08-25T15:37:30.033 回答
0

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

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

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

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

于 2012-08-25T15:30:43.803 回答