如何在Java正则表达式中表达“前面没有”?例如,我想搜索“:”,但前提是它前面没有直接“\”。我怎样才能做到这一点?
Use a 消极回顾:
"(?<!\\\\):"
四个反斜杠的原因是:
- 反斜杠是正则表达式中的特殊字符,因此您需要正则表达式
\\
匹配单个反斜杠。
- Java 字符串中的反斜杠必须进行转义,因此上述每个反斜杠必须写为
\\
,总共给出四个。
示例代码:
Pattern pattern = Pattern.compile("(?<!\\\\):");
Matcher matcher = pattern.matcher("foo\\:x bar:y");
if (matcher.find()) {
System.out.println(matcher.start());
}
Output:
10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)