Ruby Regexp负向后看被忽略?
在Ruby 2.0 Regexp中,我希望有人能够解释我的错误: 这种积极的态度是正确的:Ruby Regexp负向后看被忽略?,ruby,regex,Ruby,Regex,在Ruby 2.0 Regexp中,我希望有人能够解释我的错误: 这种积极的态度是正确的: "seacow hotdog".scan(/(?<=hot)(cow|dog)/) # => [["dog"]] “海牛热狗”。扫描(/(?[[“狗”]] 这种消极的背后观感不起作用: "seacow hotdog".scan(/(?<!=hot)(cow|dog)/) # => [["cow"], ["dog"]] - INCORRECT “海牛热狗”。扫描(/(?[“牛
"seacow hotdog".scan(/(?<=hot)(cow|dog)/) # => [["dog"]]
“海牛热狗”。扫描(/(?[[“狗”]]
这种消极的背后观感不起作用:
"seacow hotdog".scan(/(?<!=hot)(cow|dog)/) # => [["cow"], ["dog"]] - INCORRECT
“海牛热狗”。扫描(/(?[“牛”],[“狗”])-不正确
为什么?
您正在寻找=hot
作为文本字符串
参见演示文档非常清楚地介绍了
?:“(?-反向查找断言:确保前面的字符与pat不匹配,但在匹配的文本中不包括这些字符”谢谢。非常感谢。@Ross-很高兴听到。您还需要什么吗,或者这是否回答了您的问题?
"seacow hotdog".scan(/(?<!=hot)(cow|dog)/)
^
"seacow hotdog".scan(/(?<!hot)(cow|dog)/)