gpt4 book ai didi

regex - 使用正则表达式更改第 n 次出现

转载 作者:行者123 更新时间:2023-12-02 07:29:32 25 4
gpt4 key购买 nike

引用这个 SO 问题:Cutting a string at nth occurrence of a character

有一个稍微不同的问题:这可以使用正则表达式来完成吗?

"aa.bb.cc.dd.ee.xx" => "aa.bb.NN.dd.ee.ff" 
(replacing only 3rd occurrence, all chars are random alphanumeric text )

注意: .split() .slice() .join() 是一个可读的解决方案,正则表达式似乎是可行且直接的(我可能是错的)。例如:替换前两个“aa”。和“bb”。说“AoA”和“BoB”,似乎微不足道:-

`"aa.bb.cc.dd.ee.xx".replace(/([^\.]*\.){2}/, 'AoA.BoB.')`

编辑:由于“.”在正则表达式中表示“匹配任何内容”,请改用“;”(分号)。更困难的是,如果我们有这样的字符串怎么办:

“ax;;cyz;def;eghi;xyzw”,我们想替换第 3 部分(例如:cyz)

最佳答案

要替换第 3 次出现,您将匹配:

^((\w{2}\.){2})\w{2}\.(.*)$

并替换为:

\1NN.\3

要替换第 n 次出现,您将匹配:

^((\w{2}\.){n-1})\w{2}\.(.*)$

Demo

对于您的评论:

^(([^;]*\;){2})[^;]*\;(.*)$

Demo2

关于regex - 使用正则表达式更改第 n 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23420697/

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