所以我需要一些帮助来删除此字符串中的数字
import re
g="C0N4rtist"
re.sub(r'\W','',g)'
print(re.sub(r'\W','',g))
应该看起来像
CNrtist
但它给了我
04
我已经通过在线研究制作了此代码,并且我已经使用此网站http://docs.python.org/2/library/re.html寻求帮助。在我看来,代码应该工作,我不知道什么是错的,所以让我知道什么是错的将是非常有帮助的,因为我已经在线和stackoverflow研究。
答案 0 :(得分:4)
对数字使用\d
:
>>> import re
>>> g = "C0N4rtist"
>>> re.sub(r'\d+', '', g)
'CNrtist'
请注意,您不需要正则表达式,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
答案 1 :(得分:3)
没有必要为此使用正则表达式。你可以使用isdigit()函数
def removeDigitsFromStr(_str):
result = ''.join(i for i in _str if not i.isdigit())
return result