我需要帮助的正则表达式。
我以为我已经愉快地集成了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","])