0

Java 6 を使用しています。「!@#$%^&*()_」という「特殊」文字を含む文字列があります。別の文字列 "password" に、最初の文字列で定義された文字が少なくとも 1 つ含まれているかどうかを確認する Java 式を作成するにはどうすればよいですか? 私は持っている

regForm.getPassword().matches(".*[\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\_\\+].*")

しかし、特殊文字をハードコードするのではなく、プロパティ ファイルから文字列に読み込みます。そのため、ファイルからロードした後、すべてを適切にエスケープする方法がわかりません。

4

3 に答える 3

11

Pattern.quoteを使用して、特殊文字とエスケープ記号を含む文字列から正規表現を作成してみてください。これを試して:

String special = "!@#$%^&*()_";
String pattern = ".*[" + Pattern.quote(special) + "].*";
regFrom.getPassword().matches(pattern);
于 2013-05-22T14:24:37.537 に答える
0

1 つのオプションは、 を使用してStringTokenizer、複数の部分文字列が返されるかどうかを確認することです。分割する文字を指定できるコンストラクターがあります。

とにかく、私のお気に入りのオプションは、文字を反復してString.indexOf.

于 2013-05-22T14:25:49.793 に答える