正则表达式替换Nth +出现

时间:2017-06-29 16:44:03

标签: regex notepad++

我有一个字符串:

AAA|BBBB|CCCCCC|DDD|EEE|FFF

我需要一个正则表达式来替换第三个管道后面带有感叹号!的所有管道,如下所示:

AAA|BBBB|CCCCCC|DDD!EEE!FFF

我可以选择^(?:[^|^\n]*\|){3}([^|^\n]*\|){1,}.*$但无法找到替换方法。

我花了一天时间在Notepad ++中尝试一些东西但没有成功:-(谢谢!

1 个答案:

答案 0 :(得分:3)

您在正确的轨道上只需要在交替中匹配和捕获其他管道。

找到:

^(?:[^|]*\|){3}\K|(\|)

替换为:

(?1!)

替换字符串遵循条件语句,这意味着如果我们要在捕获组#1时替换,请插入!