所以我需要一些帮助从此字符串中删除数字
import re
g="C0N4rtist"
re.sub(r'\W','',g)'
print(re.sub(r'\W','',g))
它应该看起来像
CNrtist
但相反,它给了我 04
04
我已经通过在线研究制作了此代码,并使用了该网站http://docs.python.org/2/library/re.html寻求帮助。在我看来,代码应该可以正常工作,而且我不知道出了什么问题,所以让我知道出了什么问题对我来说已经非常有用了,因为我已经在网上和stackoverflow中进行了研究。
使用\d的数字:
\d
>>> import re >>> g = "C0N4rtist" >>> re.sub(r'\d+', '', g) 'CNrtist'
请注意,您不需要正则表达式,str.translate与正则表达式版本相比非常快
str.translate
>>> from string import digits >>> g.translate(None, digits) 'CNrtist'
时间:
>>> g = "C0N4rtist"*100 >>> %timeit g.translate(None, digits) #winner 100000 loops, best of 3: 9.98 us per loop >>> %timeit ''.join(i for i in g if not i.isdigit()) 1000 loops, best of 3: 507 us per loop >>> %timeit re.sub(r'\d+', '', g) 1000 loops, best of 3: 253 us per loop >>> %timeit ''.join([i for i in g if not i.isdigit()]) 1000 loops, best of 3: 352 us per loop >>> %timeit ''.join([i for i in g if i not in digits]) 1000 loops, best of 3: 277 us per loop