因为写采集规则的时候使用,需要写一个大于某个正整数的正则表达式,仔细研究了下,经过多次测试,用了个比较笨拙的办法搞定,把书写方法写下来。以大于125302的正整数的正则表达式为例,书写过程如下:
第一步,书写125303到125309的正则表达式:12530[3-9]
第二步,12531x到12539x的正则表达式:1253[1-9][0-9]
第三步,1254xx到1259xx的正则表达式:125[4-9]\d{2}
第四步,126xxx到129xxx的正则表达式:12[6-9]\d{3}
第五步,13xxxx到19xxxx的正则表达式:1[3-9]\d{4}
第六步,2xxxxx到9xxxxx的正则表达式:[2-9]\d{5}
第七步,大于六位正整数的正则表达式:[1-9]+\d{6,}
最后将上面这七个表达式串联起来就可以了:
12530[3-9]|1253[1-9][0-9]|125[4-9]\d{2}|12[6-9]\d{3}|1[3-9]\d{4}|[2-9]\d{5}|[1-9]+\d{6,}
有兴趣的朋友可以测试一下看看效果,不同的环境下正则表达式的一些细节是不相同的,因为我是在微软 .Net Framework 2.0环境下测试的,所以就用了.Net下的工具Regex Tester。如果用这个工具的话,首先确保已经安装了.Net Framework 2.0,然后下载Regex Tester。这是个绿色软件,下载完后打开压缩包,直接运行RegexTester.exe就可以了。
如果有什么问题请斧正,有更好的方法欢迎交流额。

没有回复 to “大于某个正整数正则表达式的写法”