Perl REGEX,仅替换同一行中的第一次出现

时间:2016-02-24 07:52:50

标签: regex perl

我在MYREGEX.txt文件的同一行上有以下文本序列:

test1.f.ABC, test2.f.XYZ, test3.f.PQR));

我想转变为:

test1.abc, test2.xyz, test3.pqr));

因此,我提出了以下Perl表达式来完成所需的工作:

perl -p -i -e 's/\.f\.([A-Z]*?[a-z0-9]*?)([\s\);,])/\.\L$1$2/' ./MYREGEX.txt

但是,该脚本似乎只替换该行中的第一个匹配项,如下所示:

test1.abc, test2.f.XYZ, test3.f.PQR));

有人可以告诉我在我的剧本中需要调整哪些内容吗?

1 个答案:

答案 0 :(得分:2)

添加g为全局替换添加正则表达式的结尾:

perl -p -i -e 's/\.f\.([A-Z]*?[a-z0-9]*?)([\s\);,])/\.\L$1$2/g' ./MYREGEX.txt