正規表現はJavaで動作していません

私はこの正規表現 [a-zA-Z] \ d \ d \\ $ \ d \ d- \ d \ d \ d \ dを A11 $ 12-9190 しかし、それは一致していません。すべての手がかりは?

0
その正規表現は有効ではありません。
追加された 著者 Hovercraft Full Of Eels,
$の前に\をエスケープしているので、文字列の最後に到達しましたが、その後はさらに数字を探しています。ありえない。
追加された 著者 FailedDev,
使用している実際のJava文字列は何ですか?
追加された 著者 millimoose,

4 答え

各バックスラッシュ \ は、Javaパターンで余分なバックスラッシュ \\ でエスケープする必要があります。ドル記号の前のバックスラッシュはすでにエスケープされていることに注意してください。

結果の正規表現は次のようになります。

[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d
4
追加された

基本的には、あなたの\ dが文字列のエスケープ文字であるとJavaが仮定しているので、それを\\ dに変換する必要があります - 正規表現のためにdをエスケープする\

2
追加された

あなたの正規表現は有効ではありません。例えば。、

  String test = "A11$12-9190";
  String regex = "[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d";

  System.out.println(test.matches(regex));
1
追加された

あなたはすべての \ をエスケープしていますか?文字列がある場合は、 "\\ d" を実行する必要があります。

0
追加された