我有一个重复“文章”这个词的文字,我需要使用Notepad ++用一个数字替换每个单词,从'1'开始,然后是下一个实例'2'..等等{\ d + [+ 1]}
例如:
this is article and this is another article. Here is an article etc.
变为:
this is 1 and this is another 2. Here is an 3 etc.
答案 0 :(得分:1)
是的,你可以,但这很棘手。 假设您的文件中没有#,请将每一行替换为下一行(全部替换多次):
(?<!#)(#*article)([^#]*?)((?=\1))
\1\2#\3
所以这给出了this is article and this is another #article. Here is an ##article etc.
。继续:
article
\#
所以你有:
this is # and this is another ##. Here is an ### etc.
现在每篇文章都被映射到其位置磅数的n倍。要转换为基数10,您需要交替并重复执行以下操作(假设%未出现在原始文本中)
#{10}
%
%{10}
#
依此类推,直到你无法取代第一个和第二个。然后你可以这样做:
(#|%)\1{8}
9
(#|%)\1{7}
8
(#|%)\1{6}
7
(#|%)\1{5}
6
(#|%)\1{4}
5
(#|%)\1{3}
4
(#|%)\1{2}
3
(#|%)\1{1}
2
(#|%)
1
瞧! this is 1 and this is another 2. Here is an 3 etc.
如果您的文档中有n篇文章,则第一次操作需要O(n)次才能单击“全部替换”,第二次操作需要O(log(n)),第三次O(1),所以总时间实际上是O(n),这是你所期望的。