23

以下のルールに準拠した正規表現を見つけています。

許可される文字

アルファベット:az / AZ
番号:0-9
特殊文字:〜@#$ ^&*()--_ + = [] {} | \、。?:(
スペースを許可する必要があります)

禁止されている

特殊文字:<>'"/;`%

4

3 に答える 3

40

使用できる文字については、

^[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$

許可された文字のみで構成される完全な文字列を検証します。-これが最後にあり(そうでない場合は範囲​​になるため)、いくつかの文字がエスケープされていることに注意してください。

無効な文字については、使用できます

[<>'"/;`%]

それらをチェックします。

両方を1つの正規表現に組み合わせるには、次を使用できます

^(?=[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$)(?!.*[<>'"/;`%])

ただし、先読みを可能にする正規表現エンジンが必要です。

于 2012-04-16T11:49:30.890 に答える
11

あなたは実際に質問をしていませんが、あなたが質問をしていると仮定すると、これがあなたの答えかもしれません...

「特殊文字」を除くすべての文字が許可されていると仮定すると、次のように書くことができます。

String regex = "^[^<>'\"/;`%]*$";
于 2012-04-16T11:49:53.777 に答える
4
[a-zA-Z0-9~@#\^\$&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\s]*

^ $または適切と思われる他の区切り文字でラップすることだけを許可したい場合は、これでマッチングが行われます。これを行う場合、特定の禁止ロジックは必要ありません。

于 2012-04-16T11:51:06.130 に答える