我想从git日志中获取所有日期。例如,如果我做
git log
我正在
...
commit foofoofoofoofoomorefoos
Author: pragmaticus <foo@foo.tld>
Date: Fri Feb 24 19:58:19 2017 +0100
...
使用以下正则表达式提取日期
(\w{3} \w{3} [0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} [0-9]{4})
导致
Fri Feb 24 19:58:19 2017
正如你所看到的,正则表达式很长。有没有办法形成一个不那么冗长的模式?
更新
正如@bejado在评论中所建议的,我用\ d
替换了所有[0-9]标记(\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4})
还有很多重复的令牌。我们能走多远,让它更短?
更新
到目前为止@MohaMed的最短正则表达式
^Date:\s*(.*)\s[\+\-].*$
我喜欢模式测试字符串的方式&#34;日期:&#34;和&#34; + / - &#34;最后签名。
答案 0 :(得分:1)
@MohaMad
建议的一个相当稳定且短的正则表达式^Date:\s*(.*)\s[\+\-].*$
通过更改git日志输出的格式,我甚至可以通过打印日期来消除正则表达式的需要(感谢@torek)。
git log --format="%ad"
答案 1 :(得分:0)
你可以使用这个正则表达式:\ w {3} \ w {3} [0-9 \ s:] *,但我相信torek的反应更好。