【发布时间】:2017-10-29 07:42:30
【问题描述】:
我目前正在开发一个 GitHub 挂钩,以在提交消息与某个字符串匹配时移动一些 Zenhub 问题位置。我想要实现的是:
Progress #121, #128, #50
我想在此处提取问题编号:121、128、50,并且该行必须具有 Progress 前缀。问题必须用逗号分隔,以 # 开头,并且可以有任意数量的前缀空格。
到目前为止我只做到了这一点
^(?:Progress)(?:\s*#(\d+),?)+$
这只会返回给我最后一个捕获组,这里是 50。
我想知道我哪里出了问题以及如何达到预期的结果。谢谢你。
编辑:我想使用正则表达式,因为我还想解决这些额外的情况:“进度”可以从字符串的中间开始,或者任何行的开头。如果“进度”从字符串的中间开始,那么我必须检查它后面的任何问题编号。
所以,如果有任何答案可以在 Python 中优雅地解决这个问题(除了 regex )也是受欢迎的。
【问题讨论】:
-
你也需要#50吗?
-
你想用JS还是python?
-
不幸的是,JavaScript 和 Python 都不支持匹配继续锚点
\G,这会很容易:(?:^Progress\s+#|\G#)(\d+)(?:,\s+|$) -
@TimPietzcker 这就是所谓的吗?谢谢!
-
@cᴏʟᴅsᴘᴇᴇᴅ:我不确定这是否是“官方”名称。