正则表达式/ abc $ /将匹配出现在行尾的abc。我该如何做逆?
我想要匹配不在行尾的abc。
此外,我将使用正则表达式来替换字符串,所以我只想捕获abc,而不是任何字符串之后,所以/ abc。 $ /不起作用,因为它不仅会替代abc,而且还会替代abc之后的任何东西。
正确的正则表达式是什么?
/abc(?!$)/
(?!$)是一个negative lookahead.它会寻找任何没有直接后跟一个$(结束行)的abc匹配,
经过测试
> abcddee(match)
> dddeeeabc(no match)
> adfassdfabcs(match)
> fabcddee(match)
将其应用于您的案件:
ruby-1.9.2-p290 :007 > "aslkdjfabcalskdfjaabcaabc".gsub(/abc(?!$)/,'xyz') => "aslkdjfxyzalskdfjaxyzaabc"