我是正则表达式的初学者。我读到\b[1-9][0-9]{2,4}\b
与100
和99999
之间的数字相匹配,但\b[1-9][0-9]{2,4}\b
和\b[1-9]{2,4}\b
之间的区别是什么,为什么提到的模式与{之间的数字相匹配? {1}}和100
?
我认为因为99999
和min=2
模式匹配10到9999之间的数字,因为最小的两位数字是10,最大的四位数字是9999。
答案 0 :(得分:1)
您的理解并不完全正确。
xy{2,4} matches x followed by 2 to 4 y => xyy or xyyy or xyyyy
在您的情况下[1-9][0-9]{2,4}
匹配[1-9]
之后的任何数字,后跟2 to 4
中的任何[0-9]
数字。所以它匹配
100 - 1 coming from [1-9] and 00 coming from [0-9]{2,4}
和
99999 - 9 coming from [1-9] and 9999 coming from [0-9]{2,4}
答案 1 :(得分:0)
但
\b[1-9][0-9]{2,4}\b
和\b[1-9]{2,4}\b
之间有什么不同??
在第二个正则表达式中,你不能有任何0
s
所以10在第二个中不匹配。
和
[1-9][0-9]{2,4}
匹配1 00到9 9999(第一部分是1-9,而你可以添加00 - 9999)
{2,4}
仅属于[0-9]
...所以它只有一个[1-9]
和2-4 [0-9]
试用正则表达式,您可以使用https://regex101.com/
答案 2 :(得分:0)
表达式说:首先是空白,然后是1-9范围内的数字,然后是0-9范围内的2到4位数字。因此,最小数量为100。
答案 3 :(得分:0)
\b[1-9][0-9]{2,4}\b
==>
\b
==>确保单词边界。 ie。,不允许你的字符串在111111000011111
[1-9][0-9]{2,4}
==>数字1到9后跟数字(在0到9之间),其最小长度= 2,最大长度= 4.这匹配字符串:132,10234但不是012或11。
\b[1-9]{2,4}\b
==>匹配1到9 2到4次。即,19,193,1934都是有效的