我想要一个正则表达式来匹配并从这句话中提取 BUG-123:
some junk here BUG-123 My bug description goes here
谢谢
您可以使用BUG-(\d+)
所以它会是
List<string> bugNos=Regex.Matches(yourString,@"BUG-(\d+)",RegexOptions.IgnoreCase)
.Cast<Match>()
.Select(x=>x.Value).ToList();
正则表达式如下。它将解析所有行。
(?m)BUG-([^ ]+)
对于一个相关的 StackOverflow 问题(JIRA 标识符的正则表达式),我从 Atlassian 自己(用于 Java)中找到了一个半官方的正则表达式,并将其移植到 JavaScript。
爪哇版:
((?<!([A-Za-z]{1,10})-?)[A-Z]+-\d+)
JavaScript 版本(不过需要先反转所有内容):
var jira_matcher = /\d+-[A-Z]+(?!-?[a-zA-Z]{1,10})/g
更多细节在这里:
我刚刚研究了为 jira 问题创建一个正则表达式并找到了这个条目。我找到了一些匹配的测试数据
VALID:
JIRA-1 BIN-10000 A-1 TACO-7133 X-88 BF-18 ABC-1 BINGO-1 BUG-123
NOT VALID:
JIRA-01 BIN-10000000 abc-123 ABCDEFGHIJKL-999 abc XY-Z-333 abcDEF-33
VALID no \s Ending
JIRA-1
并提出(研究+原创作品)一个.net正则表达式,它应该匹配有效的而不匹配无效的:
(?<!([^\s]))([A-Z]{1,10}-[1-9][0-9]{0,6})(?=(\s|$))
值得一提的来源: so-answer atlassians regex atlassioan forum