正则表达式中是否有一个字符串可以指示它自动递增它的替换,无论它们是数字还是字母。
谢谢
例如,我有应该是数字的字符串,1, 2, 3, 4, 5
但它们目前的编号为1, 1, 1, 1, 1
我将如何将这 5 个单独的相似字符串中的数字替换为1, 2, 3, 4, 5
正则表达式中是否有一个字符串可以指示它自动递增它的替换,无论它们是数字还是字母。
谢谢
例如,我有应该是数字的字符串,1, 2, 3, 4, 5
但它们目前的编号为1, 1, 1, 1, 1
我将如何将这 5 个单独的相似字符串中的数字替换为1, 2, 3, 4, 5
我不熟悉 TextWrangler 的语法;但是,它使用pcre
所以这应该是你想要的,只要你有办法为你的递增变量分配一个初始值(在这种情况下,我使用$ii
)......下面的脚本替换了任何出现的“pizza-x”与“pizza-0”、“pizza-1”...
@foo = ('pizza', 'pizza-a', 'pizza-b', 'pizza-c');
$ii = 0;
foreach (@foo) {
$_ =~ s/(pizza-)[a-z]/"$1".$ii++/e;
print "$_\n";
}
结果...
[mpenning@mpenning-t60 Desktop]$ perl foo.pl
pizza
pizza-0
pizza-1
pizza-2
魔法来自s///e;
and $ii++
; 确保将非递增字符串括在引号中并用句点连接。
perl -pi -e '$ii = 0; s/something/"here".$ii++/e
或者,只需直接在文本文件上使用 ` 进行自动增量修改(当然,首先制作备份副本)。