python - Python:用变量替换完全匹配的子字符串
问题描述
我有一个字符串列表等'cdbbdbda', 'fgfghjkbd', 'cdbbd'
。我还有一个从另一个字符串列表馈送的变量。我需要的是替换第一个列表的字符串中的子字符串,例如b
by z
,前提是它前面有来自变量列表的子字符串,所有其他事件都被触及。我有的:
a = ['cdbbdbda', 'fgfghjkbd', 'cdbbd']
c = ['d', 'f', 'l']
我所做的:
for i in a:
for j in c:
if j+'b' in i:
i = re.sub('b', 'z', i)
我需要的:
'cdzbdzda'
'fgfghjkbd'
'cdzbd'
我得到什么:
'cdzzdzda'
'fgfghjkbd'
'cdzzd'
'b' 的所有实例都被替换。我是新手,非常欢迎任何帮助。在 Stackoverflow 上寻找答案我发现了许多基于单词边界的正则表达式解决方案或基于 的解决方案re
,str.replace
但count
我不能使用它,因为字符串的长度和 'b' 的出现次数可能会有所不同。
解决方案
我想如果你包含j
在查找和替换中,你会得到你想要的。
>>> for i in a:
... for j in c:
... i = re.sub(j+'b', j+'z', i)
... print i
...
cdzbdzda
fgfghjkbd
cdzbd
>>>
我添加print i
是因为您的循环不会进行就地更改,因此如果没有该输出,就无法查看进行了哪些替换。
推荐阅读
- elasticsearch - 破折号上的字段值
- python - 如何在一个脚本中调用另一个脚本,并同时运行它们?
- ionic3 - 如何将 paytm 与 IONIC 3 集成?
- android - 优雅地处理缺失的 gradle 定义(如果定义缺失,使用默认值)
- powershell - 使用 PowerShell 将 HTML 页面转换为图像
- sublimetext3 - 删除标签及其内容键盘快捷键
- osgi - feature:repo-add 和 feature:install 在 Apache Felix 中的等效项
- javascript - 调整 Facebook 登录按钮的大小
- shell - 如何删除所有文件和目录中的标题(第一行)。并且文件名在 unix 中仍然保持不变
- stata - 仅使用“if”折叠数据集的子集