regex 我想将多个字符转换为Python正则表达式

q8l4jmvw  于 2022-12-05  发布在  Python
关注(0)|答案(2)|浏览(103)

只转换此字符串中数字

"ABC234TSY65234525erQ"

我尝试只将带数字的区域更改为 * 号
这就是我想要的

"ABC*TSY*erQ"

但当我真的这么做的时候,结果是这样的

"ABC***TSY********erQ"

我该如何更改它?
谢谢你!

nhjlsmyf

nhjlsmyf1#

在正则表达式中使用\d+ . +表示“匹配前面的字符一次或多次”

import re
s = re.sub(r'\d+', '*', s)

输出:

'ABC*TSY*erQ'
yebdmbv4

yebdmbv42#

@JayPeerachi给出的re.sub()解决方案可能是最好的选择,但我们也可以在这里使用re.findall()

inp = "ABC234TSY65234525erQ"
output = '*'.join(re.findall(r'\D+', inp))
print(output)  # ABC*TSY*erQ

相关问题