我有特定格式的文件名
II.NIL.10.BHZ.M.2058.190.160877
II.NIL.10.BHA.M.2008.190.168857
II.NIL.10.BHB.M.2078.198.160857
.
.
.
我想删除BH?.M
部分,该部分的值位于name
中的字符串变量中
name=['T','D','FG'.....]
预期产量
II.NIL.10.BHT.2058.190.160877
II.NIL.10.BHD.2008.190.168857
II.NIL.10.BHFG.2078.198.160857
.
.
.
用str.replace()
有可能吗
您可以在
re.sub
的lambda
替换中使用iter
和next
:输出:
不,不能将
str.replace
与通配符一起使用。您必须将regex与以下内容一起使用您可以使用内置的regex模块(
re
)和以下模式一起有效地替换字符串中的内容模式
此模式向后查找(不匹配)以确保检查子字符串
'BH'
,然后在任何大写字符[A-Z]
上匹配一次或多次+
,然后再匹配子字符串'.M'
解决方案
下面的解决方案在上面概述的模式旁边使用
re.sub()
返回一个字符串,其中子字符串与替换为此处定义为replacement
的模式匹配输出
处理多个文件
要对多个文件重复此过程,可以在循环/理解中应用上述逻辑,在每个
original
/replacement
配对上运行re.sub()
函数,并适当地存储/处理下面的示例使用原始问题中的数据以及上述逻辑,通过原始文件名和使用
re.sub()
插入的子字符串之间的字典映射,创建包含每个re.sub()
操作结果的列表输出
相关问题 更多 >
编程相关推荐