次のいずれかの形式の文字列からパス番号を抽出しようとしています。
PassID_132
PassID_64
Pass_298
Pass_16
このために、次の正規表現を作成しました。
Pass[I]?[D]?_([\d]{2,3})
-Eclipseの検索ダイアログでテストしました。うまくいきました。
しかし、コードで使用すると、何にも一致しません。ここに私のコードスニペットがあります:
String idString = filename.replaceAll("Pass[I]?[D]?_([\\d]{2,3})", "$1");
int result = Integer.parseInt(idString);
私も試しました
java.util.regex.Pattern.compile("Pass[I]?[D]?_([\\d]{2,3})")
デバッグ中に式ウィンドウに表示されますが、それは「」と表示されますが、
java.util.regex.Pattern.compile("Pass[I]?[D]?_([0-9]{2,3})")
コンパイルされましたが、何も一致しませんでした。何が問題なのですか?