2014-05-13 426 views
-1

我需要表达式来检查数字7是否小于30且大于1.这是一个示例。任何人都可以提供表达和解释吗?RegEx用于检查数字是小于还是大于

+4

正则表达式可能不是接近最好的办法... – Joel

+0

这是太多的例子复杂的问题。我有其他的解决方案,但我需要找到一个与正则表达式。 – opejanovic

+0

请描述复杂的问题,然后 - 范围变化?为什么是正则表达式? –

回答

0

不要使用正则表达式,但如果你想,在这里你去:

^(?:[2-9]|[1-2][0-9])$ 

Regular expression visualization

Debuggex Demo


说明:

此锚到开始/结束的字符串(所以我们在175中不匹配7),然后所有逻辑发生在非捕获组中。匹配数字[2-9 ](大于1)匹配[1-2]后跟任意数字[0-9](范围从10-29)。请注意,我使用的是[0-9]而不是\d,因为它更符合可读性,并且\d在技术上将与其他数字字符(阿拉伯语等)匹配。


侧面说明,如果你想允许前导0(1 < 007 == 7 < 30),你可以在字符串开始后允许0+ 0的:

^0*(?:[2-9]|[1-2][0-9])$ 
0
^([2-9]|[1-2][0-9])$ 

上述表达式匹配,如果:

  • 给定的字符串是一个字符长,该字符是范围从2到9的数字
  • 给定的字符串长两个字符,第一个字符是1或2,第二个字符的范围从0到9
+1

“*小于* 30”。 – Sam

+0

@Sam刚修复它。 – Khub

相关问题