2012-06-07 42 views
3

我有一个简单的正则表达式问题,这让我疯狂。 我有一个变量x = "field1: XXXX field2: YYYY"。 我想检索YYYY(注意这是一个示例值)。 我的方法如下:简单的python正则表达式,冒号后匹配

values = re.match('field2:\s(.*)', x) 
print values.groups() 

它不符合任何内容。我可以得到一些帮助吗?谢谢!

回答

8

你的正则表达式是好

field2:\s(.*) 

字符串的开始试试这个代码

match = re.search(r"field2:\s(.*)", subject) 
if match: 
    result = match.group(1) 
else: 
    result = "" 
+0

愚蠢的错误...谢谢! – Ken

6

re.match()只匹配。您想用re.search()代替。

此外,你应该使用一个逐字字符串:

>>> values = re.search(r'field2:\s(.*)', x) 
>>> print values.groups() 
('YYYY',)