私が許可された文字を確認するには、次の方法を持っているでは動作していない許可された文字を確認してください。 -
を逃れなければならないのですか?正規表現は、Java
5
A
答えて
9
内側[
... ]
-
シンボルは特別に扱われます。 (あなたがa-z
を持っているあなたの式の先頭で、この特別な目的でそれを自分で使用しています。)
あなたは[...]
に-
文字
[a-zA-Z0-9,.;:\-_'\s]
^
または最後(または最初)にそれを置くをエスケープする必要があります
[a-zA-Z0-9,.;:_'\s-]
^
のような表現のいくつかはさらにノート:
技術的には、すべての文字が空の文字列で有効なので、私は
+
から*
に変更します。String.matches
は完全な文字列をチェックするので、^
と$
は冗長です。あなたの全体の方法は、それが文字の範囲として解釈されないように、あなたは文字グループの開始時に
-
を置くことができますreturn test.matches("[a-zA-Z0-9,.;:_'\\s-]*");
1
としてwirttenすることができます。
2
-
は、両側に囲まれた文字クラスで、範囲を表す正規表現のメタ文字です。
if (test.matches("^[a-zA-Z0-9,.;:\\-_'\\s]+$"))
^^^
またはcharクラスの終わりに-
を置く:
if (test.matches("^[a-zA-Z0-9,.;:_'\\s-]+$"))
^
や場所あなたがchar型のクラスで-
をエスケープ文字クラス内のリテラル-
を一覧表示するには
charクラスの冒頭の-
:
if (test.matches("^[-a-zA-Z0-9,.;:_'\\s]+$"))
^
関連する問題
- 1. 正規表現(正規表現)Java
- 2. 正規表現(Java)
- 3. java正規表現
- 4. Java正規表現
- 5. Java正規表現
- 6. 正規表現Java
- 7. 正規表現(JAVA)
- 8. Java正規表現
- 9. 正規表現パターンマッチングは、Java
- 10. 正規表現は、Java
- 11. Java正規表現は
- 12. JavaScript正規表現からJava正規表現
- 13. マルチスレッドJava正規表現
- 14. 正規表現のJava
- 15. java正規表現のキャプチャグループ
- 16. 正規表現パターンJava
- 17. Javaの正規表現
- 18. Javaの正規表現
- 19. Java正規表現のパターンマッチング
- 20. Javaの正規表現
- 21. のJava正規表現
- 22. スピードアップJava正規表現
- 23. Javaの正規表現パターン
- 24. のJava正規表現パターン
- 25. java htmlunitの正規表現
- 26. Java正規表現のヘルプ
- 27. Javaの逆正規表現
- 28. Java正規表現ヘルプ
- 29. Javaの正規表現エンジンクラッシュ
- 30. Java replaceAll(..)と正規表現
あなたはエスケープしてみませんか? – Simon