用x替换字符串中的整数而没有错误处理


问题内容

我一直在试图找出一种简单的方法来用python中的x替换字符串中的整数。通过执行以下操作,我可以正常工作:

In [73]: string = "martian2015"
In [74]: string = list(string)

In [75]: for n, i in enumerate(string):
   ....:     try:
   ....:         if isinstance(int(i), int):
   ....:             string[n]='x'
   ....:     except ValueError:
   ....:         continue

实际上,这会产生以下内容:

In [81]: string
Out[81]: ['m', 'a', 'r', 't', 'i', 'a', 'n', 'x', 'x', 'x', 'x']
In [86]: joiner = ""

In [87]: string = joiner.join(string)

In [88]: string
Out[88]: 'martianxxxx'

我的问题是:有没有办法以 更简单的方式 获得结果而不依赖于 错误/异常处理


问题答案:

是的,使用正则表达式和re模块:

import re

new_string = re.sub("\d", "x", "martin2015")

该字符串"\d"告诉Python搜索字符串中的所有数字。第二个参数是您要替换所有匹配项的参数,第三个参数是您的输入。(re.sub代表“替代”)