我发现了这个:Regex to match digits of specific length但是它谈到了Python。我希望能够获得一组特定长度的随机数。因此,如果我167691#15316243
它将匹配15316243
。我不知道如何实现这一点。现在我有new RegExp('[0-9]+', "g");
匹配一组数字很好,但现在我意识到我有一些时间,当我有一个以上的组,我只想要一组八个数字。
答案 0 :(得分:15)
[0-9]+ - Matches one or more numbers
[0-9]{8} - Matches exactly 8 numbers.
[0-9]{8,10} - Matches between 8 and 10 numbers.
[0-9]{8,} - Matches 8 or more numbers.
[0-9]* - Matches zero or more numbers.
[0-9]? - Matches zero or one number.
答案 1 :(得分:11)
您可以使用{}。
指定匹配集的长度例如:[0-9]{8}
将匹配0到9之间的任何数字,特定长度为8个字符。
您还可以指定最小/最大范围,而不是强制特定的legnth。因此,如果您希望min为4且最多为8,则示例将更改为:[0-9]{4,8}
答案 2 :(得分:2)
简单地将重复数量放在大括号中:
"167691#15316243".match(/\d{8}/g);
这是小提琴:http://jsfiddle.net/3r5vd/
我建议您阅读this article(向下滚动到限制重复部分)。
这是一个引用:
现代正则表达式风格[...]有一个额外的重复运算符,允许您指定令牌可以重复的次数。语法为
{min,max}
,其中min
是指示最小匹配数的正整数,max
是等于或大于min
的整数,表示最大数量比赛如果逗号存在但省略max
,则最大匹配数为无限。因此{0,}
与*
相同,{1,}
与+
相同。
省略逗号和最大值会告诉引擎完全重复min
次令牌。