gpt4 book ai didi

java - 为什么这个 Java 正则表达式不能编译?

转载 作者:行者123 更新时间:2023-11-29 05:40:20 24 4
gpt4 key购买 nike

我正在尝试从以下任何格式的字符串中提取通行证号码:

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})")

调试时在 Expressions 窗口中显示“”,而

java.util.regex.Pattern.compile("Pass[I]?[D]?_([0-9]{2,3})")

已编译,但没有匹配任何内容。可能是什么问题?

最佳答案

代替 Pass[I]?[D]?_([\d]{2,3}) 试试这个:

Pass(?:I)?(?:D)?_([\d]{2,3})

关于java - 为什么这个 Java 正则表达式不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com