Ruby regex:为youtrack问题代码解析git commit消息

时间:2014-07-04 03:24:56

标签: ruby regex git youtrack

我想解析并删除嵌入在提交消息中任何位置的youtrack问题代码。

对于那些从未使用过youtrack的人,您可以在提交中指定问题代码,如下所示:

#<project>-<issue#> <commit msg> 
e.g. #PROJ-3 I like to use git and youtrack

...或

e.g. I'm silly #PROJ-3 and like to use git and youtrack

我有以下正则表达式...

$remove_issue_regex = /( |^)#(\w+-\d+):? ? -? ?/

...我将其添加到用空字符串替换子字符串的子方法中。但它很难看,如果用户以愚蠢的方式格式化他们的消息,则可能无法正常工作。有谁知道更优雅的方式来做到这一点?

2 个答案:

答案 0 :(得分:1)

使用lookbehind,

(?<= |^)#(\w+-\d+)(?=: - )?

Rubular

OR

(?<= |^)#(\w+-\d+)(?:: - )?

Rubular

只需将整个字符串替换为第一个捕获的组,即可获得<project>-<issue>格式。

答案 1 :(得分:0)

$remove_issue_regex = /#\w+-\d+ (.*)/

会将标记后的提交消息作为第一个捕获组