如何解决提交消息的正则表达式问题
需要这种类型的提交消息
TaskId : 123456 - commit message
TaskId: 123456 - commit message
TaskId:123456 - commit message
TaskId:123456- commit message
TaskIds : 123456**,123456** ( This Can be multiple times with space without space ) - commit message
TaskIds : 123456**and 123456** ( This Can be multiple times with space without space ) - commit message
Task id - 1233443:commit message
我已经尝试过这个正则表达式,但缺少一些东西
[Tt][Aa][Ss][Kk][Ss]?\s*(?:[Ii][Dd])?\s*[: \s-]?(\s*(?:,|and)?\s*\d+)?\s*(?:\s*)
预期输出是:
$1 = (TaskId:123456,123456) In the commit message on Bitbucket This should be a Link to my custom task system
For Ex:
**https://abc.xyz.com?taskid=$1**
解决方法
从文本中删除评论,然后我假设您要匹配的是:(和类似的变体)
TaskId : 123456 - commit message
TaskId: 123456 - commit message
TaskId:123456 - commit message
TaskId:123456- commit message
TaskIds : 123456,123456 - commit message
TaskIds : 123456 and 123456 - commit message
Task id - 1233443:commit message
代替 [Tt][Aa][Ss][Kk][Ss]?
那么你也可以使用 insensitive 标志并将该部分更改为 tasks?
如果你想限制 (\s*(?:,|and)?\s*\d+)*
只接受一个 ,
/and
,那么你可以翻转它,即匹配 \d+
然后从零到-许多",number"
。简而言之(?:(\d+)(?:\s*(?:,|and)\s*(\d+))*)
。
最终模式可能如下所示:
^task(?:\s*ids?)\s*[:-]\s*(?:(\d+)(?:\s*(?:,|and)\s*(\d+))*)\s*[:-]\s*(.*)$
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。