正面对立负面观察被忽略了吗?

时间:2014-01-29 23:12:46

标签: ruby regex

在Ruby 2.0 Regexp中,我希望有人可以解释我的错误:

这种积极的观察是正确的:

"seacow hotdog".scan(/(?<=hot)(cow|dog)/) # => [["dog"]]

这种负面的后视不起作用:

"seacow hotdog".scan(/(?<!=hot)(cow|dog)/)  # => [["cow"], ["dog"]] - INCORRECT

为什么?

1 个答案:

答案 0 :(得分:3)

"seacow hotdog".scan(/(?<!=hot)(cow|dog)/)
                          ^

你有=标志,不应该在那里......

"seacow hotdog".scan(/(?<!hot)(cow|dog)/)

您正在寻找=hot作为文字字符串......

请参阅http://rubular.com/r/Oaa8ToL8jN了解演示