1

我想知道只有当它不以特定字符开头时,您如何才能匹配模式。我想匹配“foo”,但不想匹配“afoo”。我需要什么样的正则表达式运算符?我似乎找不到合适的。也许是锚?

例如我想改变

foo foo afoo foo

bar bar afoo bar

谢谢。

虽然下面的答案对于我的示例是正确的,但如果它是 /foo 而不是 afoo 呢?这似乎不一样?

4

2 回答 2

4

听起来你正在寻找负面的看法。如果你说(?<!expr1)expr2,那么它会匹配任何expr2匹配项,只要它前面没有立即expr1匹配。例如:

>> 'foo foo afoo foo'.gsub(/(?<!a)foo/, 'bar')
=> "bar bar afoo bar"
于 2013-03-27T18:13:31.787 回答
3
str = "foo foo afoo foo"

str.gsub(/\bfoo/, "bar") #=> "bar bar afoo bar"
于 2013-03-27T17:43:14.443 回答