正则表达式 /abc$/
将匹配出现在行尾的 abc
。我该怎么做?
我想匹配不在行尾的 abc
。
此外,我将使用正则表达式来替换字符串,所以我只想捕获 abc
,而不是字符串后面的任何内容,所以 /abc.+$/
不起作用,因为它不仅会替换 abc
,还会替换 abc
之后的所有内容。
正确的正则表达式是什么?
最佳答案
/abc(?!$)/
(?!$)
是一个 negative lookahead .它将查找 abc 的任何匹配项,但后面没有直接跟 $
(行尾)
测试
- abcddee(匹配)
- dddeeeabc(不匹配)
- adfassdfabcs(匹配)
- fabcddee(匹配)
将它应用到你的案例中:
ruby-1.9.2-p290 :007 > "aslkdjfabcalskdfjaabcaabc".gsub(/abc(?!$)/, 'xyz')
=> "aslkdjfxyzalskdfjaxyzaabc"
关于ruby - 什么是匹配不在行尾的字符串的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10475015/