只转换此字符串中数字
"ABC234TSY65234525erQ"
我尝试只将带数字的区域更改为 * 号这就是我想要的
"ABC*TSY*erQ"
但当我真的这么做的时候,结果是这样的
"ABC***TSY********erQ"
我该如何更改它?谢谢你!
nhjlsmyf1#
在正则表达式中使用\d+ . +表示“匹配前面的字符一次或多次”
\d+
+
import re s = re.sub(r'\d+', '*', s)
输出:
'ABC*TSY*erQ'
yebdmbv42#
@JayPeerachi给出的re.sub()解决方案可能是最好的选择,但我们也可以在这里使用re.findall():
re.sub()
re.findall()
inp = "ABC234TSY65234525erQ" output = '*'.join(re.findall(r'\D+', inp)) print(output) # ABC*TSY*erQ
2条答案
按热度按时间nhjlsmyf1#
在正则表达式中使用
\d+
.+
表示“匹配前面的字符一次或多次”输出:
yebdmbv42#
@JayPeerachi给出的
re.sub()
解决方案可能是最好的选择,但我们也可以在这里使用re.findall()
: