如何设置可变数量的正则表达式?

时间:2014-11-11 14:55:54

标签: python regex

目前我有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,但没有运气。有没有更好的方法呢?或者我只是缺少一些微不足道的东西?

2 个答案:

答案 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 '