2014-02-27 67 views
1

我有一個Python應用程序,我試圖在字符串中解析出<>之間的信息。Python正則表達式在< and >之間找到一個字符串

我的字符串是:

##MESSAGE=<A=test_id,B=.,C=type,D="Description">\n 

我已經試過Python

pattern = re.compile('*\<(\w+)\>*') 
match = pattern.match(line) 

,但我的格局仍然沒有出現是正確的,因爲match總是等於None

任何人都可以看到我的模式是什麼問題?

+1

'*'是一個貪婪的操作符。 –

+0

匹配不能等於任何東西,正則表達式不會編譯。 – sln

回答

6
pattern = re.compile('<(\w+)>') 

pattern = re.compile('<([^>]*)>') 

您可以使用模式,比如這樣:

使用re.search()

x = re.search(pattern, input) 
print x.group(1) 

使用re.match():你必須在兩端添加.*正則表達式。見例如:

pattern = re.compile('.*<([^>]*)>.*') 
#      ^^   ^^ 
x = pattern.match(input) 
print x.group(1) 
+0

完美的解釋!只要SO允許,我會盡快接受。 – Brett

2

使用re.search相反,re.match嘗試從行的開頭匹配。

相關問題