我正在尝试从以下任何格式的字符串中提取通行证号:
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})")
编译,但没有匹配任何东西。可能是什么问题呢?