1

我有一个文件,在搜索中包含十几个到数百个匹配项

 /playOrder="(\d+)"/ 

这些在 ePub 电子书的索引文件中,以防有人想知道。

是否有可能让一个 perl 正则表达式替换找到所有这些的东西,并“神奇地”将它们全部重新编号为一个序列,从 1 开始?

4

1 回答 1

3

根据 OP 的要求,发表评论作为答案:

perl -pe 's/playOrder="\K\d+"/++$i . q(")/ge' infile > outfile 

这个单线正在使用由评估创建的替换字段,创建一个序列1",如2"...

如果使用前瞻断言而不是插入新的双引号,则可以进行进一步优化"

perl -pe 's/playOrder="\K\d+(?=")/++$i/ge' infile > outfile 
于 2013-11-03T14:05:01.993 回答