php Regex返回字符串中的一些整数



我需要帮助的正则表达式。

我以为我已经愉快地集成了svn和Mantis,直到我遇到了一个包含多个问题的签入问题。我使用的是Mantisbt 1.2.5

我试图支持的提交消息可能像:"问题#74 78 112对485行做了一些事情,只花了3小时27分钟"。我需要我的regexp返回[74,78,112](但不是[485,7,27])。

我的"当前"$g_source_control_regexp = '/b(bug|issue)[s]{0,1}s*[#]{0,1}s*(d+s+)+/i'似乎返回了"问题#74 78 112"的1个元素,它没有更新任何内容

感谢任何建议。

吉姆

我不认为你可以只使用正则表达式。重复捕获组只捕获最后一次迭代(阅读更多关于重复捕获组与捕获重复组的信息)

否则我会这样做(注意,我不是PHP程序员…):

str.match(/b(?:bug|issue)s?s*#?s*((?:d+s+)+)/i)[1].trim().split(/s+/)
result: ["74", "78", "112"]
  • (?:)为非捕获组
  • matches[0]通常是完全模式匹配
  • matches[1]是第一个捕获组(在本例中是唯一一个)
  • trim()需要在末尾去掉一个额外的空间(没有它,你会在末尾得到一个空组["74","78","112","])

相关内容

  • 没有找到相关文章

最新更新