0

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

没用过youtrack的朋友,可以在commits中指定问题代码如下:

#<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+):? ? -? ?/

...我将其输入一个子方法,用空字符串替换子字符串。但如果用户以一种愚蠢的方式格式化他们的消息,这很丑陋并且可能不起作用。有谁知道更优雅的方式来做到这一点?

4

2 回答 2

1

使用后视,

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

红色的

或者

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

红色的

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

于 2014-07-04T03:35:52.040 回答
0

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

将提交消息放在标记之后作为第一个捕获组

于 2014-07-04T03:31:24.523 回答