0

我正在进行 html 提取,并且在次要职责中使用正则表达式。我正在使用 pythonre模块,我想避免在需要定义组时返回内部组 - 或者至少在似乎需要时。

例如,考虑以下字符串:

line = u" 07.49 (43 votes) "

和表达式:

expr = lambda x: re.findall("(\d+(\.\d{1,2})?)\D*(\d+)", x)

应用程序的返回是:

expr(line)
[(u'7.49', u'.49', u'43')]

我希望得到以下结果:

expr(line)
[(u'7.49', u'43')]

但我需要在 中定义内部组(\.\d{1,2})?"(\d+(\.\d{1,2})?)\D*(\d+)"因为数字的小数部分可能不会出现。

有没有办法避免这个额外的群体

4

1 回答 1

2

绝对地。请改用非捕获组。

(\d+(?:\.\d{1,2})?)\D*(\d+)
于 2012-12-25T20:36:57.043 回答