目前我有out = re.sub(r'[0-9][0-9][0-9]', '', input)
。我想有一个可变数量的[0-9]
' s。
到目前为止,我有;
string = ''
for i in xrange(numlen):
string = string + '[0-9]'
string = 'r' + string
out = re.sub(string, '', input)
这不起作用,我尝试使用re.compile
,但没有运气。有没有更好的方法呢?或者我只是缺少一些微不足道的东西?
答案 0 :(得分:3)
您可以使用{}
指定重复,例如3位数字
[0-9]{3}
所以你可以做点什么
reps = 5 # or whatever value you'd like
out = re.sub('[0-9]{{{}}}'.format(reps), '', input)
或者如果你不知道会有多少位数
out = re.sub('[0-9]+', '', input)
答案 1 :(得分:1)
使用量化的+
,它会匹配一个或多个出现的数字
out = re.sub(r'[0-9]+', '', input)
了解正则表达式如何匹配http://regex101.com/r/cE6yS6/1
例如
>>> import re
>>> word="hello 123"
>>> out = re.sub(r'[0-9]+', '', word)
>>> word
'hello 123'
>>> out
'hello '