比如"daxxsd12a52d5sdaxxda"
怎么把首个数字的前面一段非数字(daxxsd)去掉
把末尾数字后面一段非数字(sdaxxda)去掉
并且把中间的非数字替换成自己想要的字符(比如?)
最终想要的结果:12?52?5
>>> import re
>>> s = "daxxsd12a52d5sdaxxda"
>>> t = re.findall(r'\d.+\d',s)[0]
>>> t
'12a52d5'
>>> t = re.sub(r'\D','?',t)
>>> t
'12?52?5'
>>>
一条语句比较麻烦,但也是可以做到的
>>> import re
>>> a = 'daxxsd12a52d5sdaxxda'
>>> b = re.sub(r'\D*(\d+)\D(\d+)\D(\d+)\D*',r'\1?\2?\3',a)
>>> print(b)
12?52?5
import re
def remove_prefix_suffix(src, middle_char):
result = re.sub(r"^\D*", "", src)
result = re.sub(r"\D*$", "", result)
result = re.sub(r"\D", middle_char, result)
return result
print(remove_prefix_suffix("daxxsd12a52d5sdaxxda", "?"))