以下のルールに準拠した正規表現を見つけています。
許可される文字
アルファベット:az / AZ
番号:0-9
特殊文字:〜@#$ ^&*()--_ + = [] {} | \、。?:(
スペースを許可する必要があります)
禁止されている
特殊文字:<>'"/;`%
使用できる文字については、
^[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$
許可された文字のみで構成される完全な文字列を検証します。-
これが最後にあり(そうでない場合は範囲になるため)、いくつかの文字がエスケープされていることに注意してください。
無効な文字については、使用できます
[<>'"/;`%]
それらをチェックします。
両方を1つの正規表現に組み合わせるには、次を使用できます
^(?=[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$)(?!.*[<>'"/;`%])
ただし、先読みを可能にする正規表現エンジンが必要です。
あなたは実際に質問をしていませんが、あなたが質問をしていると仮定すると、これがあなたの答えかもしれません...
「特殊文字」を除くすべての文字が許可されていると仮定すると、次のように書くことができます。
String regex = "^[^<>'\"/;`%]*$";
[a-zA-Z0-9~@#\^\$&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\s]*
^ $または適切と思われる他の区切り文字でラップすることだけを許可したい場合は、これでマッチングが行われます。これを行う場合、特定の禁止ロジックは必要ありません。