正则表达式/abc$/
将匹配显示在该行末尾的abc
。我该怎么办?
我希望匹配不在一行末尾的abc
。
此外,我将使用正则表达式替换字符串,所以我只想捕获abc
,而不是字符串之后的任何内容,因此/abc.+$/
不起作用,因为它会不仅取代abc
,还取代abc
之后的任何内容。
使用正确的正则表达式是什么?
答案 0 :(得分:60)
/abc(?!$)/
(?!$)
是negative lookahead。它将查找abc的任何匹配,但不会直接跟随$
(行尾)
经过测试
将其应用于您的案例:
ruby-1.9.2-p290 :007 > "aslkdjfabcalskdfjaabcaabc".gsub(/abc(?!$)/, 'xyz')
=> "aslkdjfxyzalskdfjaxyzaabc"