gpt4 book ai didi

ruby - 等同于 Vim 的正则表达式开始和结束匹配 (`\zs` 和 `\ze` )?

转载 作者:数据小太阳 更新时间:2023-10-29 08:37:10 24 4
gpt4 key购买 nike

如果我只想用 Atom 中的其他内容替换匹配项的一部分,我该怎么做?

Ruby 正则表达式解决方案可能会奏效,因为 Ruby 使用的正则表达式引擎与 Oniguruma(Atom 使用的引擎)非常相似。

我找到了一个 Oniguruma manual其中说 \G 设置匹配开始位置,但这对我不起作用。

最佳答案

我认为 Ruby 没有直接等价于 \zs\ze , 但您可以使用先行 ( (?=pat) ) 和后行 ( (?<=pat) ) 来模仿他们的行为:

[1] pry(main)> ('abc'.match /(?<=a)b(?=c)/)
=> #<MatchData "b">
[2] pry(main)> ('bc'.match /(?<=a)b(?=c)/)
=> nil
[3] pry(main)> ('ab'.match /(?<=a)b(?=c)/)
=> nil

不幸的是,Ruby 的 lookbehind 需要固定大小的模式(或多个固定大小的替代方案)- Vim 的限制 \zs没有。

关于ruby - 等同于 Vim 的正则表达式开始和结束匹配 (`\zs` 和 `\ze` )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com