繁体   English   中英

正则表达式行与前缀匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM