我有一個字符串: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