如何在Java正则表达式中表达"not preceded by"?例如,我想搜索":",但只有当它不是直接前面的"\"时.我怎样才能做到这一点?
Mar*_*ers 16
"(?<!\\\\):"
Run Code Online (Sandbox Code Playgroud)
四个反斜杠的原因是:
\\
来匹配单个反斜杠.\\
,总共四个.示例代码:
Pattern pattern = Pattern.compile("(?<!\\\\):");
Matcher matcher = pattern.matcher("foo\\:x bar:y");
if (matcher.find()) {
System.out.println(matcher.start());
}
Run Code Online (Sandbox Code Playgroud)
输出:
10
Run Code Online (Sandbox Code Playgroud)