2014-02-27 37 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尝试从行的开头匹配。

相关问题