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

标签 python regex

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

例如:.

f = "abc 123 def 23435 kill x22 y2986" 

我想用 # 替换 defy 之间的所有数字

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

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'
>>> 

关于python - 使用正则表达式替换字符串部分之间的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345205/

相关文章:

php - 如何根据正则表达式格式化字符串?

python - 如何杀死通过Python启动的 headless X服务器?

python - 根据numpy python中的条件对二维数组进行子集化

python - Tensorflow,预期 conv2d_input 有 4 个维度

regex - 在 Google Doc Apps 脚本中使用 RegEx 来替换文本

r - 如何删除R中包含下划线或句点的单元格?

python - Django 形成 : get the value of a forms. CharField 作为日期

python - 你如何使用 pyodbc 连接到 oracle

java - 匹配 HTML 正则表达式 java 中的第 n 个数字

java - 正则表达式与前面的精确文本匹配或不匹配