正则表达式的数字和数字范围表达
在本文中,您将学习如何在正则表达式中匹配数字和数字范围。正则表达式编号范围包括0到9、1到9、0到10、1到10、1到12、1到16和1-31、1-32、0-99、0-100、1-100, 1-127、0-255、0-999、1-999、1-1000和1-9999。
关于正则表达式要记住的第一件事是正则表达式不知道数字,不知道计数并且不能理解1-100表示1到100之间的任何数字。原因是正则表达式只处理文本而不是数字,因此在处理正则表达式匹配、搜索、验证或替换操作中的数字和数字范围或数字范围时,您必须格外小心。
仅举一个例子,假设您要匹配1到100之间的任何数字,并(想当然的)为其编写正则表达式为
/ [1-100] /
并希望它将匹配从1到100的所有数字,那么您的正则表达式将起作用,但会产生意外的结果。这个正则表达式将只匹配两个数字,是的,只有两个数字,对此毫无疑问。你能找出哪两个数字吗?
如果你以为是匹配到1和100两个数字那可就大错特错了。如果您细看一下它,就会知道它只会匹配0和1,而不会匹配其他任何东西。
类似的,范围[0-255]将匹配0、1、2、5。首先是字符类中的范围0-2,它将匹配两次写入的0,1,2和5,将匹配5。现在开始在正则表达式中匹配数字和数字范围的逻辑和原理。
数字最简单的匹配是文字匹配。如果您想匹配3个,只需写/ 3 /,或者如果您要匹配99就写作/ 99 /,这将是一个成功的匹配。类似地,匹配2019 写 / 2019 /,这都是数字文字匹配。
但是您会看到它不灵活,因为很难知道文本中的特定数字,而有时候该数字可能会意外出现在范围内。
**为了匹配0到9之间的任何数字,我们在正则表达式中使用\ d。**它将匹配从0到9的任何一位数字。
\ d表示[0-9]或匹配0到9之间的任何数字。它用简写是[0-9]代替写0123456789,其中[]用于字符范围。
例如
[1-9] [0-9]将匹配从10到99的两位数字。
但是,如果您要匹配任意数量的数字(例如2,55,235、9875),则需要在末尾添加一个量词
/ \ d + / /,其中+是一个量词,可匹配一次至尽可能多的次数。
要匹配两位数字/ \ d {2} /,其中{}是一个量词,而2则表示匹配两次或仅匹配两位数字。同样,/ \ d {3} /用于匹配三位数,依此类推。
正则表达式匹配数字范围
现在,有关数字范围及其正则表达式的含义。通常在数字\ b或^ $字符用于字符串的开头或结尾之前和之后都使用单词边界。
要匹配0-9的数字范围,即0到9之间的任何数字,正则表达式很简单
/ [0-9] /
要匹配1到9之间的任何数字,正则表达式很简单
/ [1-9] /
同样,您可以使用/ [3-7] /匹配3到7之间的任何数字,或/ [2-5] /匹配2,3,4,5
匹配从0到10的数字只是一个有点复杂的开始,不是那么复杂,但是使用了一种不同的方法。该系列分为两个部分。
从0到9
10
并将为组件编写正则表达式
/ \ b([0-9] | 10)\ b /
说明:
对于这两个组件,我们正在编写两段
从0到9 [0-9]&
10 10,我们正在使用组并使用|运算符,称为“或”运算符,此处表示0-9或10。
同样,对于1到10,正则表达式将为
\ b([1-9] | 10)\ b
\ b([1-9] | 1 [0-2])\ b
从1到12的范围分为两个范围
1至9-> [1-9]
10到12-> 1 [0-2]
\ b([1-9] | 1 [0-6])\ b
在这种情况下,范围分为
1至9
10至16
\ b([1-9] | [12] [0-9] | 3 [01])\ b
在这里,从1-31的范围按要求分为三部分
1至9-> [0-9]
10到29-> [12] [0-9]
30至31-> 3 [01]
1到32的正则表达式是
\ b([1-9] | [12] [0-9] | 3 [0-2])\ b
1至9-> [0-9]
10到29-> [12] [0-9]
30至32-> 3 [02]
0到99范围的正则表达式为
\ b([0-9] | [1-9] [0-9])\ b
此范围分为两个范围
0到9-> [0-9]
10到99-> [1-9] [0-9]
0到100范围的正则表达式是
\ b([0-9] | [1-9] [0-9] | 100)\ b
在这里,范围分为三部分,然后前面的范围是数字100。
此范围的正则表达式为
\ b([1-9] | [1-9] [0-9] | 100)\ b
1.第一部分为1到9
2.第二部分是10到99
3.第三部分是100
正则表达式范围1到127是
\ b([1-9] | [1-9] [0-9] | 1 [01] [0-9] | 12 [0-7])\ b
数值范围1至127分为
1至9
10至99
100至119
120至127
此范围也分为三个部分。
此组件的正则表达式为
[01]?[0-9] [0-9]?
2 [0-4] [0-9]
25 [0-5]
完整的正则表达式是
/ \ b([01]?[0-9] [0-9]?| 2 [0-4] [0-9] | 25 [0-5])
有关更多详细信息,请参见正则表达式获取IP地址的博客文章
([0-9] | [1-9] [0-9] | [1-9] [0-9] [0-9])
0到999范围的正则表达式分为三部分,
0至9
10至99
100至999
1-999的正则表达式为
([1-9] | [1-9] [0-9] | [1-9] [0-9] [0-9])
正则表达式代码匹配范围从1到1000是
([1-9] | [1-9] [0-9] | [1-9] [0-9] [0-9] | 1000)
正则表达式范围1到9999是
([1-9] | [1-9] [0-9] | [1-9] [0-9] [0-9] | [1-9] [0-9] [0-9] [ 0-9])