我有一个包含以下内容的日志文件
commit da83ddfdfb36f0c48ab2137efaa8c81a6bb41993
Author: ”abc <abc.def@zyx.com>
Commit: ”abc <abc.def@zyx.com>
..
..
我正在尝试创建正则表达式匹配表达式,如下所示
TEST_COMMIT = 'commit\ (?P<commit>[a-f0-9]+)\n(?P<author>Author.*)\n'
RE_COMMIT = re.compile(TEST_COMMIT, re.MULTILINE | re.VERBOSE)
这在regex101(https://regex101.com/)上匹配正常但在我的代码中不起作用。
我想将提交ID和作者信息作为单独的组表达式获取。 所以
commit group should be : `da83ddfdfb36f0c48ab2137efaa8c81a6bb41993`
author group should be : `Author: ”abc <abc.def@zyx.com>
我的python版本是2.7.12
对我做错了什么评论?
答案 0 :(得分:1)
最后,我已经能够解决这个问题了。
问题是日志文件新行是回车+新行。 \ r \ n
将Regex更改为包含\ r \ n后,它能够正确获取正则表达式组。这段代码正在运行
TEST_COMMIT = r'''
commit\ (?P<commit>[a-f0-9]+)\r\n
(?P<author>Author.*)\r\n'
(?P<committer>Commit.*)\r\n'
(?<message>.*)\r\n
)
'''
RE_COMMIT = re.compile(TEST_COMMIT, re.MULTILINE | re.VERBOSE)
commits = RE_COMMIT.finditer(data)