微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将正则表达式与具有未知组数的分组匹配

如何解决如何将正则表达式与具有未知组数的分组匹配

您要查找的是 解析器 ,而不是正则表达式匹配项。在您的情况下,我会考虑使用一个非常简单的解析器split()

s = "VALUE 100 234 568 9233 119"
a = s.split()
if a[0] == "VALUE":
    print [int(x) for x in a[1:]]

您可以使用正则表达式查看输入行是否符合预期格式(使用问题中的正则表达式),然后可以运行上述代码,而无需检查"VALUE"并知道int(x)转换将始终成功,因为您已经确认以下字符组均为数字。

解决方法

我想在程序的输出日志上进行正则表达式匹配(在Python中)。日志包含如下几行:

... 
VALUE 100 234 568 9233 119
... 
VALUE 101 124 9223 4329 1559
...

我想捕获在以VALUE开头的行的第一次出现之后出现的数字列表。即,我希望它返回('100','234','568','9233','119')。问题是我事先不知道会有多少个数字。

我试图将其用作正则表达式:

VALUE (?:(\d+)\s)+

这与行匹配,但只捕获了最后一个值,所以我得到了(‘119’,)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。