Regexp替换重复的字符串

时间:2016-07-29 00:57:28

标签: regex

我有一个管道分隔文件,想要替换所有出现的| N.D. |与| | 。

我这样做了:

$line =~ s/\|N.D.\|/\| \|/g;

但是如果这条线像这样重复N.D.:

12354|this is test|N.D|N.D|some more text|

它只会替换一个。如何修复它以替换所有?

1 个答案:

答案 0 :(得分:2)

通常,您可以使用简单的正向前瞻:

\|N\.D(?=\|)并将其替换为|

$line =~ s/\|N\.D(?=\|)/\| /g;

这样,跟踪|不会包含在匹配中,下一场比赛就可以从那里开始。