如何修改这个正则表达式以检测和忽略太多字符?

3
我有一个字符串,想要用正则表达式解析它:
"id=12345,123456,1234567"

该字符串是哈希值的一部分,可能以以下方式之一出现:
"#id=12345" // single value
"#id=12345,123456,1234567" // multiple values
"#id=12345,123456,1234567&Another=Value" // one or more values followed by an ampersand.

只有5或6位数是有效的,因此结果应该是以下形式的数组:

['12345', '123456']

这是我目前拥有的正则表达式,但它也包含了7位数字(上面的最后一个):

"id=12345,123456,1234567".match(/([0-9]{5,6})+/g); 

导致如下结果:
["12345", "123456", "123456"] // Should only have two items

我该怎么做才能避免出现超过6位数的数字?

1个回答

5

最简单的方法是使用单词边界:

/(\b[0-9]{5,6}\b)+/g

我不确定你为什么在这里使用+量词...
/\b[0-9]{5,6}\b/g

我来翻译一下。这应该已经足够了。

顺便说一下,在\w\W\W\w\w$^\w之间匹配单词边界。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接