【发布时间】:2018-08-10 20:28:51
【问题描述】:
我有一个名称列表,我希望当它们全部出现在字符串中时,它们被替换为单词'PERSON'。然而,在我下面的代码中,部分匹配也被替换为'PERSON'。
这就是我所拥有的:
test = 'Testes huius rey sunt hij, videlicet, Magnificus Dominus Periohannes de Mazara, nobilis Georgius de la Chabica, Nicolaus Manfridus de Caxario et alij.'
testres = re.compile("|".join(names)).sub('PERSON', test)
结果:
'Testes huius rey sunt hij, videlicet, Magnificus Dominus PERSONohannes de Mazara, nobilis PERSONorgius de la Chabica, PERSON PERSON de Caxario et alij.'
由于'Peri'在列表中,'Periohannes'被替换为'PERSONohannes'
我该如何解决这个问题?
【问题讨论】:
-
使用 sorted(names,reverse=True) 代替 'names'。