-1

文字列に英数字のみが含まれているかどうか(「-」の有無にかかわらず)をテストするには、Javaに正規表現を追加する必要があります。元:

ADB123
ABC-D1
12ABCD
A-BCD1   

4

4 に答える 4

7

あなたが試すことができます

for (String s : "ADB123,ABC-D1,12ABCD,A-BCD1,abcd12,a.b.c,12£".split(",")) {
    boolean ok = s.matches("[-\\p{Alnum}]+");
    System.out.println(s + " is ok: " + ok);
}

版画

ADB123 is ok: true
ABC-D1 is ok: true
12ABCD is ok: true
A-BCD1 is ok: true
abcd12 is ok: true
a.b.c is ok: false
12£ is ok: false

正規表現の[-\\p{Alnum}]+意味

  • [ ]+いずれかの文字の 1 つまたは複数を意味します。
  • -最初のは-、not と not を意味し、他の何かではありません。
  • \\文字列リテラル\では、エスケープ文字と同じように変換されます。
  • \p{Alnum}英数字の定義済みリストです。

詳細については、パターンのドキュメントを参照してください。

于 2012-11-05T12:02:31.080 に答える
2

この正規表現を試してみてください。

/^[A-Z0-9-]*$/

次のように実行できます。

str.matches("[A-Z0-9-]*"); // Returns a Boolean
于 2012-11-05T11:58:21.297 に答える
2

探している正規表現は次のとおりです。

"^[A-Z0-9-]+$"
于 2012-11-05T11:59:27.630 に答える
2

これを試してみてください

"^[0-9a-zA-Z-]+$"
于 2012-11-05T12:00:09.410 に答える