Python3正则表达式缺少命名组

时间:2018-03-05 16:43:55

标签: python regex

我有以下正则表达式:

%{(?:property)[:](?P<property>.+?)[=](?P<value>.+?)}

我匹配输入字符串:

%{property:PROPERTY.NAME=VALUE}

我检查这个正则表达式的每个测试人员都能正常工作,我可以看到相应的组。不是在python中,不是。在python中,我得到了以下组的元组:

(PROPERTY.NAME, VALUE)

以下是代码:

import re
matcher = re.compile(r"%{(?:property)[:](?P<property>.+?)[=](?P<value>.+?)}", re.IGNORECASE)
match = re.match(matcher, "%{property:PROPERTY.NAME=VALUE}")
if match:
    print(match)

输出是:

(PROPERTY.NAME, VALUE)

我甚至在Perl中尝试过这个正则表达式,它给出了正确的结果。我的python版本是3.4.4。

@Edit: https://regex101.com/r/knLFiJ/1/

如果我现在试着打电话:match.group(&#39; property&#39;)我得到一个没有这样的组错误......但是任何其他的地方组都很好......

0 个答案:

没有答案