0

在示例 string"a f e $s $a"中,我想匹配所有没有前置“$”字符的字符。

我尝试使用负面的前瞻性:

"(?!\\$)[a-z]"

但它也匹配$sand $a。我做错了什么?

4

3 回答 3

1

使用否定的lookbehind,即(?<!\\$)

"(?<!\\$)[a-z]"

您使用的是负前瞻,即(?!\\$)

于 2012-11-03T17:44:51.440 回答
1

这是一个前瞻断言,这意味着它将匹配任何不是美元符号的字母,也就是说,所有这些:)

你需要回顾一下:

"(?<!\\$)[a-z]"
于 2012-11-03T17:45:08.287 回答
1

负后瞻的正确语法是(?<!...), not (?!...),因为那是负前瞻。

使用模式

(?<!\\$)[a-z]
于 2012-11-03T17:50:01.843 回答