我希望在包含无限数量的字符串的字符串上使用正则表达式进行捕获。我的直觉引导我做"/\.getnumbers (\d+)+\s*/"
,但只匹配.getnumbers
命令后面的第一个数字。如何编写一个正则表达式语句,该语句将在命令用简单空格分隔后捕获一个或多个数字。例如:.getnumbers 5 4 3 2 1
将匹配(5) (4) (3) (2) (1)
,虽然正则表达式并非专门用于匹配5个数字,但它可以匹配任意数量的数字。
答案 0 :(得分:2)
如果没有后处理,你可能无法做到这一点,因为大多数正则表达式引擎都不允许无限数量的组。幸运的是,后处理只包括按空格分割。
/\.getnumbers (\d+(?: \d+)*)/
答案 1 :(得分:2)
/\.getnumbers (\d+(?:\s+\d+)*)/
请注意,您将所有数字都作为单个捕获组获取。例如:“5 4 3 2 1”