我有一个名字列表,我希望当它们在字符串中完全出现时,它们被单词'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'
我该怎么修?你知道吗
不要加入名称列表,而是查找字符串中的所有单词,并检查找到的每个单词是否属于
names
:这就是单词边界锚定
\b
的作用:注意,它比两端的空格更普遍。。。i、 在第二个例子中用逗号。你知道吗
相关问题 更多 >
编程相关推荐