1

重複の可能性:
特殊文字を除外するための正規表現

文字列にシンボルが含まれているかどうかを確認するにはどうすればよいですか? 私がこの文字列を持っているとしましょう

"SUGAR :::: SUGAR"

その文字列に次の記号が含まれているかどうかを確認したい

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

私はこれを試しました

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

しかし、テキストにその記号が複数回出現する場合はどうなるでしょうか

4

3 に答える 3

1

グアバかもしれませんか?

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

これを試して:

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

上記は、文字列のいずれかの部分に、パターン内のいずれかの記号が少なくとも1 回出現するかどうかをチェックします (それらを で区切る必要はありません,)。

于 2012-08-25T15:31:58.820 に答える
0

これらの文字を含むセットと単純に照合するだけです:[:,?!@#$%^&*()]

シンボルに対してチェックする場合-は、セットの最後に配置します。[...-]

セット内の要素をカンマで区切る必要はありません。

英数字以外をチェックしたい場合は、代わりに \W を使用してください: [\W_] (\W は _ と一致しないため)

于 2012-08-25T15:30:43.803 に答える