微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

红宝石 – 什么是正则表达式来匹配一行不是一行的末尾?

正则表达式/ 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"

原文地址:https://www.jb51.cc/regex/357576.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐