四时宝库

程序员的知识宝库

表示大于1200的正则表达式(正则表达式 大于某个数的)

译者:明明如月

软件攻城狮

审校:

蓝色漂流瓶

不知道你啥感受,反正我感觉正则表达式有些难。除了一些非常简单的以外,我经常需要去查参考书。

昨天我一个大学同学需要一个正则表达式来过滤谷歌分析的数据。需要获取数字大于1200的那部分数据。

为了方便你以后也想找类似的正则表达式,我就写了这篇文章,你可以根据你的需求参考本文的内容。

大于1200的正则表达式

我用一个工具【1】来检测这个正则表达式是否正确。

下面给出该工具对此正则表达式的分析:

^[1-9][2-9](?!00$)[0-9][1-9]?\d+$/

^ 字符串的开头

[1-9] 匹配下面数字中的单个字符

1-9 1到9之间的单个字符

[2-9] 匹配下面数字中的单个字符

2-9 2到9之间的单个字符

(?!00$) 负向预查 - 断言下面的正则不匹配(前两位不能为00)

00 匹配 00两个字符

$ 断言字符串结尾

[0-9] 匹配下面数字中的单个字符

0-9 0到9之间的单个字符

[1-9]? 匹配下面数字中的单个字符

问号: ? 表示出现0次或者一次, 有时候也表示贪婪匹配[greedy]

1-9 表示1到9之间的单个字符

\d+ 匹配数字等价于 [0-9]

数量词: + 1次以上, 贪婪匹配 [greedy]

$ 断言字符串结尾

总结

此正则表达式的关键是(?!00$),它保证了匹配前两位后不会以两个0结尾。如果不这样1200也会匹配,这就不符合“大于”了。

不管怎样,我希望某天本文能给帮到一些人。那我来说6个月之后当我再次遇到需要类似正则表达式的时候都忘记了。

英文来源:http://www.codeshare.co.uk/blog/regular-expression-regex-for-a-number-greater-than-1200/

译者注:

【1】一个工具:https://regex101.com/r/pL8wV7/1 这个网站:https://regex101.com 非常好,不仅可以对正则表达式进行测试,还会给出错误提示以及对正则表达式进行解释等。

【2】正则表达式基本用法

【3】其他超好的参考网站:http://www.runoob.com/regexp/regexp-syntax.html

【本文已经获得原作者翻译许可,转载请注明出处】

英文:http://www.codeshare.co.uk/blog/regular-expression-regex-for-a-number-greater-than-1200/

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接