【发布时间】:2014-06-18 16:46:03
【问题描述】:
参考这个 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" 我们想替换第三部分(例如:cyz)
【问题讨论】:
-
注:个人所有 3 个答案都是可以接受的,只是 SO 只允许 1 个可接受的答案 grumble。 读者请为最适合您的答案添加 +1。
标签: regex