[英]Regex line matching with prefix
我目前正在开发GitHub挂钩,以在提交消息与某些字符串匹配时移动一些Zenhub问题放置。 我想要实现的是:
Progress #121, #128, #50
我想在此处提取问题编号:121、128、50,并且该行必须具有Progress前缀。 问题必须以逗号分隔,以#开头,并且可以有任意数量的前缀空格。
到目前为止,我唯一实现的是
^(?:Progress)(?:\s*#(\d+),?)+$
这只返回给我最后一个捕获组,这里是50。
我想知道我哪里出错了,以及如何达到预期的结果。 谢谢。
编辑:我想使用正则表达式,因为我也想解决这些额外的情况:“进度”可以从字符串的中间或任何行的开头开始。 如果“ Progress”从字符串的中间开始,那么我将必须检查其后的任何发行号。
因此,如果有任何答案可以用Python(除了regex)优雅地解决这个问题,也欢迎您。
您正在使用正则表达式来匹配整个模式,并同时从中提取重复的子模式。 我不确定您是否可以同时执行这两项操作-两者之一。
如果您使用的是Python,建议您简化一下。 使用简单的str.startswith
检查,然后使用正则表达式提取问题编号。
if string.startswith('Progress'):
return re.findall('#(\d+)', string)
应该返回['121', '128', '50']
。 如果使用JavaScript,则可以采用类似的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.