あなたの意図に応じて、最も簡単な方法は、ラ許可したいあなたがを行う文字を列挙することがあります
if(myString.matches("[a-zA-Z0-9_ ]*")) ...
をアンダースコアとスペースを含む英数字の文字列をすべて削除します。あなたは本当にただ、禁止文字の明示的に列挙されたリストを含む文字列を一致させる必要がない場合は、それらを列挙し、特殊な正規表現文字であるものをエスケープする必要があります:
import java.util.regex.Pattern;
...
String forbiddenCharacters = "`[email protected]#$%^&*{}[]"':;,.<>?/|\\";
if(!myString.matches(".*[" + Pattern.quote(forbiddenCharacters) + "].*")) ...
ノートのカップル:
- forbiddenCharacters文字列に変換するには、バックスラッシュをエスケープする必要があります。
- Patternクラスのstatic quote()メソッドを使用すると、正規表現エンジンがその文字列のリテラルバージョンであるかのように解析するように文字列をエスケープできます。つまり、特別な正規表現の文字がそのように処理されるのを防ぎます。
ありがとう、それは私が探していたものでした。私が家に到着したときに私はあなたにプラスを与えます。素晴らしい仕事。 – Sam