java - 带反斜杠的输入与正则表达式不匹配

标签 java regex

我正在尝试创建一个正则表达式匹配器,但它没有按预期工作。

String input = "// source C:\\path\\to\\folder";
System.out.println(Pattern.matches("//\\s*source\\s+[a-zA-Z]:(\\[a-zA-Z0-9_-]+)+", input));

它返回 false 但它应该通过。该正则表达式有什么问题?

最佳答案

反斜杠。这就是问题所在。

System.out.println(Pattern.matches("//\\s*source\\s+[a-zA-Z]:(\\\\[a-zA-Z0-9_-]+)+", input));
                                                              ^^

在正则表达式中,反斜杠必须转义——反斜杠。那是两个反斜杠。再加上 Java 转义,您必须编写四个反斜杠来匹配一个。

关于java - 带反斜杠的输入与正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36202644/

相关文章:

regex - 使用 awk 进行字符串匹配

java - 以最有效的方式从数据库中获取大量数据

java - Docker Mysql + Spring 连接被拒绝

javascript - 如何在字符串中搜索第一次出现的 ":/",然后搜索找到的子字符串(包括 ":/")的所有其他出现?

java - 正则表达式不将元素存储在第一个索引中

regex - 特定正则表达式的帮助 - 不包含某些字符串

javascript - 在顺序很重要的 javascript 中,是否有更 Eloquent 方法来编写字符串和符号替换?

java - 网络服务不再工作

java - 异步任务和线程

java - 如何将 List<XObject> 转换为 List<XObjectWrapper>?