用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
代表“替代”)