自己写的,最开始想遍历把每个数字前后都加上*,再删除**的,剩余的就应该满足条件了,但是发现给的字符串中也可能出现*,所以先把原始字符串中的*替换成了一般字符串中不会有的中文,再按上述方法计算,最后再把中文替换回 *

while True:
    try:
        s = input()
        sn = ''
        s = s.replace('*', '牛')
        for i in s:
            if i.isdigit():
                sn += '*' + i + '*'
            else:
                sn += i
        sn = sn.replace('**', '')
        print(sn.replace('牛', '*'))
    except:
        break

再记录下看到的re方法,方法很简单

import re
while True:
    try:
        print(re.sub('(\d+)', '*\g<1>*', input()))
    except:
        break