擅长:python、mysql、java
<p>我们可以创建一个更通用的函数,对任意数量的单词重新编号。每个要替换的单词都有自己的关联计数器,我们使用<code>re.sub</code>一次性完成所有操作:</p>
<pre><code>import re
from itertools import count
data = """word77 text text bla66 word78 text bla67
text bla68 word79 text bla69 word80 text
bla77 word81 text bla78 word92 text bla79 word99"""
words_to_renumber = ['word', 'bla']
def renumber(words_to_renumber, data):
counters = {word:count(1) for word in words_to_renumber}
def replace(match):
word = match.group(1)
return word + str(next(counters[word]))
rep_re = re.compile('(' + '|'.join(words_to_renumber) + ')' + '\d+')
out = rep_re.sub(replace, data)
return out
print(renumber(words_to_renumber, data))
</code></pre>
<p>输出:</p>
<pre><code>word1 text text bla1 word2 text bla2
text bla3 word3 text bla4 word4 text
bla5 word5 text bla6 word6 text bla7 word7
</code></pre>