我有一个字符串:Python的正则表达式 - 匹配多个表达组
property1=1234, property2=102.201.333, property3=abc
我想捕捉1234和102.201.333。我正在尝试使用正则表达式:
property1=([^,]*)|property2=([^,]*)
但它只管理捕获其中一个值。基于 this link我也试过:
((?:property1=([^,]*)|property2=([^,])+)
(?:(property1=([^,]*)|property2=([^,])+)
他们从什么地方我不捕获额外的组。
我错过了什么?
P.S.我正在使用re.search()。
编辑:可能有一些错误的,我调用代码:
m = re.search('property1=([^,]*)|property2=([^,]*)', text);
print m.groups()
EDIT2:它不必是propertyX。它可以是任何东西:
foo1=123, bar=101.2.3, foobar=abc
即使
foo1=123, bar=weirdbar[345], foobar=abc
那么我用例是既比这更简单和困难:因为 它是简单的: * Property1,Property2(即字)是已知的,硬编码 *我可以用一定的误差量活 这是困难的,因为 *值可能很复杂(weirdbar [345,weirderbar [123]]) – SANDeveloper
我意识到我正在尝试更多的Deseriazl化而不是正则表达式解析。所以我正在转向另一种方法。但我会将您的解决方案标记为最完整的答案。 – SANDeveloper