如何用Python正则表达式将字符串中连续数字替换为单个*?
用Python正则表达式实现连续数字区域替换为单个*号
你遇到的问题是因为直接匹配单个数字并替换,导致每个数字都被换成*,而我们需要把连续的数字块整体替换成一个*号。
解决方法很简单,使用re.sub()函数,正则表达式匹配一个或多个连续的数字,然后统一替换为单个*:
import re original_str = "ABC234TSY65234525erQ" result_str = re.sub(r'\d+', '*', original_str) print(result_str) # 输出: ABC*TSY*erQ
说明:
\d+:正则表达式中,\d匹配单个数字,+表示匹配前面的元素一次或多次,也就是匹配任意长度的连续数字块。re.sub(pattern, repl, string):该函数会遍历字符串,把所有匹配pattern的子串替换成repl,这里就是把每个连续数字块替换成一个*。
这样就能精准实现你想要的效果,不管数字块长度是3位还是8位,都会被替换成单个*号。
内容的提问来源于stack exchange,提问作者ddjfjfj djfiejdn
相关产品推荐
相关产品推荐

