简单的python正则表达式,冒号后匹配

Ken*_*Ken 5 python regex

我有一个简单的正则表达式问题让我发疯.我有一个变量x = "field1: XXXX field2: YYYY".我想要检索YYYY(请注意,这是一个示例值).我的方法如下:

values = re.match('field2:\s(.*)', x)
print values.groups()
Run Code Online (Sandbox Code Playgroud)

它不匹配任何东西.我能帮忙解决这个问题吗?谢谢!

buc*_*ley 13

你的正则表达式很好

field2:\s(.*)
Run Code Online (Sandbox Code Playgroud)

试试这个代码

match = re.search(r"field2:\s(.*)", subject)
if match:
    result = match.group(1)
else:
    result = ""
Run Code Online (Sandbox Code Playgroud)


Tim*_*ker 6

re.match()仅匹配字符串的开头.你想要re.search()改用.

此外,您应该使用逐字字符串:

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