0

具体的には、文字列に「不正な文字」が含まれている場合に例外をスローする単純なバリデーターを作成したいと思います。

~、@、+、%、および |

私はこれを行う最もクリーンな方法を探しており、次のような「ブラックリスト」正規表現を定義する方法があることを望んでいました。

String blacklist = "~@+%|";
String toValidate = getInputFromUser();

if(toValidate.matches(blacklist))
    throw new RuntimeException("Illegal characters found!");

ただし、正規表現が正しくないことはわかっています。私は正しい方向に向かっていますか、それともベースから外れていますか (つまり、もっと簡単な解決策がありますか)? 前もって感謝します!

4

2 に答える 2

5

正規表現は^.*[~@+%|].*$


[~@+%|]または、代わりにwithfindメソッドを使用できますmatches

于 2013-01-25T16:03:00.960 に答える
1

それを行うための明確で簡潔な方法を探しているのであれば、Java の API が乱雑になる傾向があるため、regexp は使用しません。アパッチcommons-langにはStringUtils.containsAny("text","blacklisted");. Java を 2 つ以上の文字列ユーティリティで補完するため、通常はとにかく含めるのに適したライブラリです。

于 2013-01-25T16:03:39.450 に答える