在正则表达式中使用否定条件

发布于 2024-11-10 16:28:17 字数 211 浏览 5 评论 0原文

是否可以在 gsub 表达式中使用负匹配? 我想替换以 hello 开头的字符串 excepthello Peter 开头的字符串

my-string.gsub(/^hello@/i, '')

我应该用什么来代替 @

Is it possible to use negative matches within gsub expressions?
I want to replace strings starting by hello except those starting by hello Peter

my-string.gsub(/^hello@/i, '')

What should I put instead of the @?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

じее 2024-11-17 16:28:17

听起来你想要一个负面的前瞻:

>> "hello foo".gsub(/hello (?!peter)/, 'lala ') #=> "lala foo"
>> "hello peter".gsub(/hello (?!peter)/, 'lala ') #=> "hello peter"

Sounds like you want a negative lookahead:

>> "hello foo".gsub(/hello (?!peter)/, 'lala ') #=> "lala foo"
>> "hello peter".gsub(/hello (?!peter)/, 'lala ') #=> "hello peter"
埖埖迣鎅 2024-11-17 16:28:17

正如迈克尔告诉你的,你需要消极的前瞻。

对于您的示例,类似于:

my_string.gsub(/^hello(?! peter)( .*|$)/i, '')

这将在以下情况下替换:

"hello"
"hello Mom"
"hello "
"hello Mom and Dad"

并将忽略以下内容:

"hello Peter"
"hello peter"
"hellomom"
"hello peter and tom"

As Michael told you you need a negative lookahead.

For your example is something like:

my_string.gsub(/^hello(?! peter)( .*|$)/i, '')

This will replace in cases like:

"hello"
"hello Mom"
"hello "
"hello Mom and Dad"

And will ignore things like:

"hello Peter"
"hello peter"
"hellomom"
"hello peter and tom"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文