想要不允许0作为第一个字符且不允许011的REGEXP字符串,表示任何以0开头的不允许的东西

时间:2014-10-16 10:59:08

标签: mysql regex

我正在运行一个mysql过程,其输入参数为user_id,我想验证这个user_id

条件user_id不以0开头但它包含0,即101是有效输入但011不是有效输入。

我编写以下代码,允许011作为有效代码。

user_id REGEXP '^-?[^0]$|^[1-9]+[0-9]*$'

有人可以帮我纠正上面的代码吗?

我想要REGEXP,不允许0作为第一个字符,不允许011或01或000但允许100或101。

2 个答案:

答案 0 :(得分:1)

你可以使用这样的正则表达式:

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

Regular expression visualization

Debuggex Demo

答案 1 :(得分:0)

试试这个。我使用了应该在mySQL中使用的单词边界锚,但你的正则表达式可能有所不同

仅将零排除为第一个字符,但确保它仍为数字:

 [[:<:]][1-9][[:digit:]]*[[:>:]]

还要确保字符串中存在零:

 [[:<:]][1-9][0-9]*0*[0-9]*[[:>:]]