让我们假设我有一个字符串列表:
l = ['firm incorp', 'firm2 inc']
我只想从第二个条目中删除后缀 'inc'
但如果我执行以下操作
l_r = [s.replace('inc', '') for s in l]
我还将从第一个条目中删除子字符串 inc
。处理这个问题最有效的方法是什么?
注意:原则上,我要删除的后缀仅位于字符串的末尾。
最佳答案
使用正则表达式删除仅在单词边界处找到的字符串:
import re
l_r = [re.sub(r'\binc$', '', s) for s in l]
\b
是匹配字边界的特殊字符,$
表示字符串的结尾或者刚好在字符串结尾的换行符之前。有关更多信息,请阅读 re docs .
关于python - 仅当子字符串单独时才替换 str 列表中的子字符串 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48748072/