我需要匹配5到7个字符之间的一系列数字。我认为这样可以解决问题:
([0-9]{5,7})\w+
反对这个字符串:
Sample text for testing: 22 333 4444 55555 666666 7777777
正如您在regexr example中看到的,它与具有5个数字的数字不匹配,并且匹配长于7个数字的数字。
为什么这不像我期望的那样工作?
答案 0 :(得分:2)
它与具有5个数字的数字不匹配,并且匹配长于7个数字的数字。
请注意,以下\w+
也会匹配数字。 ([0-9]{5,7})\w+
期望5,6,7位数加上至少一个单词字符。但是55555
之后就没有一个单词字符存在。所以它无法匹配输入字符串上的55555
。
答案 1 :(得分:1)
正则表达式([0-9]{5,7})\w+
无法按预期工作,因为:
example-string:12345
([0-9]{5,7})\w+
^ Matches the digits: 12345
([0-9]{5,7})\w+
^ Cannot match a word character (letter, digit, underscore)
example-string:123456789
([0-9]{5,7})\w+
^ Matches the digits: 1234567
([0-9]{5,7})\w+
^ Matches the digits: 89
要匹配5到7位数字,请使用:
\b\d{5,7}\b
\b ....... matches at the beginning or end of a word.
\d{5,7}... matches a digit in the range of 0-9 between 5 and 7 times.