正则表达式至少从2开始

时间:2014-08-11 06:53:43

标签: regex

我正在努力获得正常表达,但我无法弄明白。我正在搜索一个表达式,以便填写表单的用户不能输入0矿石1.所以它必须至少从2开始。它的表达式是什么?

非常感谢。


感谢。但这不是100%防水。作为用户,您无法填写0或1,但您也无法填写10或11或101。所以在开始时一切都是0或1。有解决方案吗?

再次感谢。

4 个答案:

答案 0 :(得分:1)

这里,这应该接受以2或更多开头的任何数字:

[2-9][0-9]* 

^[2-9][0-9]*$

如果你匹配整行。

答案 1 :(得分:0)

我理解你的意思是它以2到9的数字开头,但你应该告诉它以后是否可以包含其他数字。

纯数字:

[2-9][0-9]*

这会强制内容为数字,并以数字>开头; 1。 使用:

[2-9][0-9]+

如果必须有多个号码,

如果您使用锚定进行非完全匹配,则此操作完全匹配:

^[2-9][0-9]*$

如果在初始数字之后出现不同的字符,请使用适当的模式,例如:

[2-9].*

匹配第一个数字后面的任何内容:

[2-9] [0-9A-ZA-Z] *

匹配alfanumeric模式等...

答案 2 :(得分:0)

如果您要接受任何大于1的整数的字符串:

([1][0-9]+|[2-9][0-9]*)

前半部分([1] [0-9] +)将匹配一个以1开头的数字,然后是至少另一个数字,第二个将匹配数字2-9或以数字2-9开头的数字更多数字([2-9] [0-9] *)。

请注意,这不接受使用前导0编写的可能良好的整数,如0123.如果您想要包括它,请使用:

(0*[1][0-9]+|0*[2-9][0-9]*)

还要注意像:

这样的模式
(matcher1|matcher2)
所有RE引擎都不支持

答案 3 :(得分:-2)

我认为这样的事情会对你有用:

<强>(2 +)(。)*

这意味着只有以“2”开头的单词才能表达。 如果你想轻松地尝试正常表达,我喜欢网络http://rubular.com/ 它有一个很好的界面来直接在网络上测试表达式。

问候