我需要一个匹配跨多行传播的模式的正则表达式。例如,我需要进行特定作者的第一次git提交。
我知道有一种方法可以使用git这样做,但我希望它在regexp中。
commit 9a06fd844952587774632f470442288e422910da
Author: Mark Gitter <mark.gitter@microsoft.com>
Date: Tue Jun 11 17:13:26 2013 +0300
Random git comment.
此正则表达式commit [a-z0-9]*
与提交sha-1匹配,但我无法在下一行开始搜索。
我正在http://gskinner.com/RegExr/
我希望它匹配
commit 9a06fd844952587774632f470442288e422910da
Author: Mark Gitter
有什么想法吗?
答案 0 :(得分:2)
由于某些作者名称包含空格,我们可以捕获到<
符号的所有内容,不包括前面的空格。
commit ([a-z0-9]*)\s*Author:(\s*[^<]+)(?<!\s)
答案 1 :(得分:1)
将\r\n
用于新行:
commit (.*)\r\nAuthor:(\s*\w+\s*\w+)