我需要一个正则表达式来匹配数字列表,而另一个匹配数字范围(在这两种情况下表达式永远不会失败)。范围应由一个数字,一个破折号和另一个数字(N-N)组成,而列表应由用逗号(N,N,N)分隔的数字组成。下面是一些例子。正则表达式匹配范围或数字列表
范围:
'1-10' => OK
Whateverelse => NOK (e.g. '1-10 11-20')
列表:
'1,2,3' => OK
Whateverelse => NOK
这里是我的两个正则表达式:
- [0-9] + [\ - ] [0-9] +
- ([0-9] + ,?)+
...但我和他们的几个问题...例如:
在评估'1-10'
,正则表达式2场比赛1
...但它不应该匹配任何内容,因为该字符串不包含列表。
然后,评估'1-10 11-14'
时,正则表达式1场比赛1-10
...但因为字符串中包含的不仅仅是一个范围更不应该匹配任何。
我错过了什么?谢谢。
'1,2,4'OK?你需要依次编号吗? – unlimit
就像一个提示,你可以使用这个:http://regexpal.com/来测试正则表达式 –
当你想要高级功能,它也取决于谁使用正则表达式的味道。 Perl有一组功能。 Awk另一个。 UNIX样式程序深深地依赖于正在使用的操作系统。 – Gilbert