【问题标题】:JIRA Issue Key RegexJIRA 问题密钥正则表达式
【发布时间】:2018-07-31 00:04:30
【问题描述】:

我想要一个正则表达式来匹配并从这句话中提取BUG-123:

some junk here BUG-123 My bug description goes here

谢谢

【问题讨论】:

  • 您使用哪种语言的正则表达式?爪哇? xxxyyy 是什么?你试过什么?
  • 我将在 C# 中使用正则表达式。 xxx 和 yyy 只是可能出现在提交消息中的错误编号之前的垃圾文本。
  • 我需要使用正则表达式解析上述任何 sn-ps 并返回错误编号。我简化了这个问题,因为它让人们感到困惑。
  • 你根本不知道正则表达式,是吗?

标签: c# regex


【解决方案1】:

您可以使用BUG-(\d+)

原来如此

List<string> bugNos=Regex.Matches(yourString,@"BUG-(\d+)",RegexOptions.IgnoreCase)
                       .Cast<Match>()
                       .Select(x=>x.Value).ToList();

【讨论】:

  • 这就是我想要的 100%。非常感谢!
【解决方案2】:

正则表达式如下。它将解析所有行。

(?m)BUG-([^ ]+)

【讨论】:

  • 我刚刚用 C# 编写了以下代码,它返回 false:new Regex("/BUG-([^ ]+)/g").IsMatch("BUG-123")。我更新了我的原始帖子以使其更简单。
  • @AdamLevitt 不,这可以正常工作..您没有正确使用正则表达式...从正则表达式中删除 /
  • @ualinker 你的正则表达式是正确的..但这是c# 而不是php..不需要/
  • 好的,感谢您的注意!我知道 RegExps 但我不熟悉 C#,很遗憾
  • 也不需要m
【解决方案3】:

对于一个相关的 StackOverflow 问题 (Regular expression for a JIRA identifier),我从 Atlassian 自己找到了一个半官方的正则表达式(用于 Java),并将其移植到 JavaScript。

Java 版本:

((?<!([A-Za-z]{1,10})-?)[A-Z]+-\d+)

JavaScript 版本(不过,需要先反转所有内容):

var jira_matcher = /\d+-[A-Z]+(?!-?[a-zA-Z]{1,10})/g

更多细节在这里:

https://stackoverflow.com/a/30518972/290254

【讨论】:

    【解决方案4】:

    我刚刚研究了为 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|$))
    

    permalink to playground

    值得一提的来源: so-answer atlassians regex atlassioan forum

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      相关资源
      最近更新 更多