在示例字符串"a f e $s $a"
中,我希望匹配所有没有预先“$”字符的字符。
我试图使用负面预测:
"(?!\\$)[a-z]"
但它也匹配$s
和$a
。我做错了什么?
答案 0 :(得分:1)
使用负面观察,即(?<!\\$)
"(?<!\\$)[a-z]"
您正在使用否定前瞻,即(?!\\$)
答案 1 :(得分:1)
这是一个 lookahead 断言,这意味着它将匹配任何不是美元符号的字母,也就是所有字母:)
你需要一个后视:
"(?<!\\$)[a-z]"
答案 2 :(得分:0)
负面反馈的正确语法是(?<!...)
,而不是(?!...)
,因为这是负面预测。
使用模式
(?<!\\$)[a-z]