开始我有一个类似如下的文件:匹配数字,如果符合关键字
foo: 11.00 12.00 bar 13.00
bar: 11.00 12.00 bar
foo: 11.00 12.00
,并想与关键字开头的行提取所有号码为“foo”。预期结果:
['11.00', '12.00', '13.00']
['11.00', '12.00']
现在,这很容易,如果我用两个正则表达式,像这样:
if re.match('^foo:', line):
re.findall('\d+\.\d+', line)
但我想知道,如果有可能将这些组合成一个单一的正则表达式?
感谢您的帮助, MD
您正则表达式表明,“富”应该来在该行的开始,但你不提它在描述中。情况确实如此吗? – egor83
是的,就是这样。我改变了描述。 –
简短回答:不,你不能在同一个正则表达式中执行这两个操作,如果你不知道会有多少数字,至少不能用Python。但是,您可以在.NET中执行此操作,但在后向断言中存在不确定的重复:'(?<=^foo。*)\ d + \。\ d +'(使用'RegexOptions.Multiline'选项)。 –