我有一大串单词要清理。很多这样的单词出现多次,每次都写得有点不同,我想把它们规范化。例如,我想替换以下词语:
list = ["resident super", "super live in", "on site superintendent in building", "livein super", "residential super", "superintendent lives in", "on-site super"...]
只需superintendent
我想我可以用
^{pr2}$但我肯定会错过一些参赛作品。所有的条目都包含单词super
,但是有没有一种方法可以用所需的单词替换整个条目?在
我可能误解了你的问题,但你不能用
in
代替吗?这似乎不能保证正则表达式,因为正则表达式的速度要慢得多。在例如:
这将把列表中包含
super
的所有内容替换为superintendent
我不确定我是否理解你的问题,但如果你想用
super
替换其中的每个元素,我会这样做。在顺便说一下,不要将变量命名为
list
,因为它是一个保留的python关键字。在re.sub
方法不替换字符串。不能,因为Python中的字符串是不可变的。对字符串执行替换时,它将返回一个包含所请求更改的新字符串(如果不匹配,则返回原始字符串)。您当前忽略了返回值,因此您的代码没有任何效果。在但我认为这个问题根本不需要正则表达式。如果要将任何提到单词
super
的字符串替换为字符串"superintendent"
,可以使用一个简单的子字符串测试:这当然比使用当前的正则表达式更容易出现误报。如果需要,您仍然可以将上面代码的结构与regex搜索一起使用(只需将
if "super" in item:
行更改为if re.search(pattern, item):
,然后将pattern
设置为与所需字符串匹配的regex)。在相关问题 更多 >
编程相关推荐