Python 在正则表达式返回中避免内部组
我正在做一个html提取,我在次要任务中使用正则表达式。我使用的是pythonPython 在正则表达式返回中避免内部组,python,regex,findall,Python,Regex,Findall,我正在做一个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')] 我希望得到以下结果:
re
模块,我希望避免在需要定义组时返回内部组,或者至少在似乎需要时返回内部组
作为一个例子,考虑字符串:
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+(\.\d{1,2}))\d*(\d+)”
中定义内部组(\.\d{1,2})
,因为数字的小数部分可能不会出现
有没有办法避免这个额外的群体?绝对有。改用非捕获组
(\d+(?:\.\d{1,2})?)\D*(\d+)
这是一种特定于python的语法,还是在sed、egrep和其他工具上有效?@Rubens。。这是特定于正则表达式的,对所有正则表达式工具都有效。哇!明亮的D:谢谢大家!只是一个额外的问题:我能不能像使用
[^…]
那样否定一个组,但让..
成为一个组?你应该对此使用负面展望。谢谢大家!我现在更喜欢正则表达式(: