【发布时间】:2019-04-10 10:48:20
【问题描述】:
我在 Java 中创建了一个正则表达式模式,显然,匹配器类在字符串中找到它,但它没有返回正确的值。
如果你看到这个image,当我执行m.find() 方法时,Eclipse 给了我一个“真”值,但它没有正确地将它分配给isMatch 变量。
当我写“if (m.find()),它不会进入内部块。
代码示例:
{
private final static String REGEX_PATTERN_FILE_GROUP = "(\\d{14}_\\d{9}_\\D{3}_\\d{11}_)";
for (File file: fileList) {
Pattern p = Pattern.compile(REGEX_PATTERN_FILE_GROUP);
Matcher m = p.matcher(file.getName());
if (m.find())
{
.... More code ...
}
}
file.getName() 值示例: "1.0- 20190409095211_200522007_CNA_20180000959_1_xxxxx.pdf"
显然,m.find() 是“真”(正如 Eclipse 向我展示的那样),但它永远不会进入内部 if 块,如果我尝试分配给另一个布尔值也不会。
在https://regex101.com/ 中测试并获得价值。
我的 Java 版本是“1.8.0_181”64 位服务器。
我是 StackOverflow、Java 和 Eclipse 的新手。
【问题讨论】:
-
请删除您的 Eclipse 屏幕截图链接,并直接在问题中包含所有相关的 Java 代码。
-
在问题中添加代码而不是图像
-
如果您使用
if (m.find()) { ... }之前没有调用.find(),如果您的正则表达式匹配字符串,它必须工作。 -
你会在图像中看到更好,但我把代码放在了