我在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));
有人可以告诉我在我的剧本中需要调整哪些内容吗?
答案 0 :(得分:2)
添加g
为全局替换添加正则表达式的结尾:
perl -p -i -e 's/\.f\.([A-Z]*?[a-z0-9]*?)([\s\);,])/\.\L$1$2/g' ./MYREGEX.txt