1

我想在可能包含无限数量的数字的字符串上使用正则表达式获取捕获。我的直觉引导我这样做"/\.getnumbers (\d+)+\s*/",但这仅与.getnumbers命令后的第一个数字相匹配。如何编写一个正则表达式语句,该语句将在命令后捕获一个或多个数字,用一个简单的空格分隔。例如:.getnumbers 5 4 3 2 1will match (5) (4) (3) (2) (1),虽然正则表达式不是专门为匹配 5 个数字而编写的,但它可以匹配任意数量的数字。

4

2 回答 2

2

如果没有后处理,您可能无法做到这一点,因为大多数正则表达式引擎不允许无限数量的组。幸运的是,后处理只包括按空格分割。

/\.getnumbers (\d+(?: \d+)*)/
于 2010-11-29T00:39:33.800 回答
2
/\.getnumbers (\d+(?:\s+\d+)*)/

请注意,您将获得所有数字作为单个捕获组。例如:“5 4 3 2 1”

于 2010-11-29T00:40:13.097 回答