Skip to main content
 首页 » 编程设计

python之使用正则表达式替换字符串部分之间的数字

2025年05月04日36开发

我想替换字符串某部分之间的数字

例如:.

f = "abc 123 def 23435 kill x22 y2986"  

我想用 # 替换 def 和 y 之间的所有数字

试过用下面的表达式,没用

exp = re.sub(r"(?<=def)\d+(?=y)", "#", f) 

预期输出:

abc 123 def ##### kill x## y2986 

请您参考如下方法:

嗯,我认为乍一看似乎很难用正则表达式来做到这一点,但有一种方法可以通过在多个级别(在本例中为 2 个级别)应用正则表达式来做到这一点。这是一个例子:

>>> f = "abc 123 def 23435 kill x22 y2986"  
>>> import re 
>>> exp = re.sub(r"(?<=def)(.*)(?=y)", lambda x:re.sub(r"\d", '#', x.group()), f) 
>>> exp 
'abc 123 def ##### kill x## y2986' 
>>>