匹配除零之外的这些值

时间:2012-03-13 19:51:15

标签: regex

我有以下正则表达式^(([0-9]{1,2})|100|888|777|999)$

这允许某人输入数字:0-99,100,888,777,999

我现在必须改变表达式以允许:1-99,100,888,777,999(现在基本上不允许ZERO)

我想过做^(!0|([0-9]{1,2})|100|888|777|999)$ ......但这当然行不通,因为那就像说“如果不是零,我们就没事了”

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

尝试将一个数字与两个数字的数字分开:

^([0-9]|([1-9][0-9])|100|888|777|999)$

然后删除0:

^([1-9]|([1-9][0-9])|100|888|777|999)$

现在你已经拥有了,有一种明显的方法来简化它:

^(([1-9][0-9]?)|100|888|777|999)$

所以,twain249,如果你想读取前面有过多零的数字,但你不希望匹配包含它们:

^0*(([1-9][0-9]?)|100|888|777|999)$

答案 1 :(得分:1)

这应该达到你想要的效果:

^(([1-9][0-9]?)|100|888|777|999)$

答案 2 :(得分:1)

^([1-9] [0-9])| 100 | 888 | 777 | 999 $