Regex 匹配这些值(零除外)
我有下面的正则表达式Regex 匹配这些值(零除外),regex,Regex,我有下面的正则表达式^([0-9]{1,2})| 100 | 888 | 777 | 999)$ 这允许用户输入数字:0-99100888777999 现在我必须修改表达式以允许:1-99100888777999(现在基本上不允许为零) 我想做^(!0 |([0-9]{1,2})| 100 | 888 | 777 | 999)$。。。但这当然行不通,因为这就像说“如果不是零,我们就没事” 有什么建议吗 尝试将一位数与两位数的数字分开: ^([0-9]|([1-9][0-9])| 100 | 88
^([0-9]{1,2})| 100 | 888 | 777 | 999)$
这允许用户输入数字:0-99100888777999
现在我必须修改表达式以允许:1-99100888777999(现在基本上不允许为零)
我想做^(!0 |([0-9]{1,2})| 100 | 888 | 777 | 999)$
。。。但这当然行不通,因为这就像说“如果不是零,我们就没事”
有什么建议吗 尝试将一位数与两位数的数字分开:
^([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-9][0-9]?)|100|888|777|999)$
^([1-9][0-9]?)| 100 | 888 | 777 | 999$你试过[1-9]{1,2}而不是[0-9]{1,2}了吗?@MarshallConover,这行不通,因为它不会将任何2位数字与其中的0相匹配。我不知道他是否想删除像
02
这样的数字,但修改你的正则表达式来处理这个问题很容易。谢谢你向我展示你的思考过程。。。正在等待将此标记为答案的功能:P@twain249我没有想到这个问题,但这是给其他人的([0-9][1-9]{1})|([1-9][0-9]?)| 100 | 888 | 777 | 999)$