与PCRE转换混淆以重新符合Python标准search()

时间:2019-02-28 20:29:27

标签: python regex python-2.7 pcre

我正在尝试使用re库解析文件中的某些模式。但是,我无法将PCRE转换为适合Python 2.7的格式。

有人可以提供关于我可能做错了什么的任何提示吗?我这里有PCRE格式的正则表达式:

https://regexr.com/49b3c

我的Python 2.7重新编码类似于以下相关代码片段。

line = '2019-02-27 23:00:45,123 DEBUG [org.wildfly.security.access] (default task-1337) Permission check failed (permission "("org.hibernate.validator.HibernateValidatorPermission" "accessPrivateMembers")" in code source "(foo:/foo/bar.war/WEB-INF/classes <no signer certificates>)" of "ModuleClassLoader for Module "deployment.foo.war" from Service Module Loader")'
m = re.search('(?<=permission\b ")\(.+"\)(?=")', line)

最终目的是要遍历整个文件并像这样解析该模式。

import re
f = open('foo.log', 'r')

for line in f:
    m = re.search('(?<=permission\b ")\(.+"\)(?=")', line)
    print m

f.close()

不幸的是,这些解决方案都不起作用,据我所知,这是一对一的副本。这种正则表达式的结果总是声称是PCRE投诉,结果始终是None。

就像上面提供的链接所示,我期望从该字符串中提取的结果是:

("org.hibernate.validator.HibernateValidatorPermission" "accessPrivateMembers")

任何有关为何无法按预期工作的建议将不胜感激。

0 个答案:

没有答案