我試圖使用正則表達式來解析以(key###value)
格式編寫的值。該值將始終是一個數字。無論如何,我想,這會,最簡單的用Python來做到這一點,所以這裏的一些代碼,我想:如何在同一行中分隔多個正則表達式匹配
import re
line = "(text 1###123)(text 2###345)";
matchObj = re.match(r'\(.*###[0-9]+\)', line)
if matchObj:
print matchObj.group(0) # produces (text 1###123)(text 2###345)
# print matchObj.group(1) # gives an error
else:
print "No match!!"
即使有匹配的,我寫的正則表達式兩個不同的對象,蟒蛇回到他們以我爲一個字符串 - 不是我想要的。我怎樣才能解決這個問題?
實際上,我真正想要的是將字符串分隔成類似["text 1", "123", "text 2", "345]
的東西。所以如果有人有一個簡單的方法來實現這一點,我也非常感謝。
非貪婪'(。*?)'是必要的在這裏,否則'findall'返回'[('text 1 ### 123)(text 2','345')]' –
@JanneKarila好點。我想我最初是以'[^#] *'的形式出現的,然後決定這會做出太多的假設,所以不用考慮它就回到'。*'。 –