正则表达式:字符串必须包含a-z和A-Z以及0-9

时间:2012-08-08 09:56:23

标签: mysql regex stored-procedures

我正在使用存储过程来验证输入参数。输入参数必须包含a-z和A-Z以及0-9 例如:
aS78fhE0 - >正确
76AfbRZt - >正确
76afbrzt - >不正确(不包含大写字母A-Z)
asAfbRZt - >不正确(不包含数字0-9)
4QA53RZJ - >不正确(不包含小写字母a-z)

什么正则表达式可以验证输入参数,如上例所示。?

非常感谢,Praditha

更新
不允许使用除字母数字以外的其他字符我正在使用MySQL版本5

6 个答案:

答案 0 :(得分:5)

进一步来自Johns Post及其后的评论:

您需要的MySql是

SELECT * FROM mytable WHERE mycolumn REGEXP BINARY '[a-z]'
                        AND mycolumn REGEXP BINARY '[A-Z]'
                        AND mycolumn REGEXP BINARY '[0-9]'

添加其他

AND mycolum REGEXP BINARY '^[a-zA-Z0-9]+$'

如果你想要字符串中的字母数字

答案 1 :(得分:3)

使用先行断言你可以这样做:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$/

更新 似乎mysql不支持查看断言。

答案 2 :(得分:2)

您可以将其拆分为3个单独的正则表达式来测试每个案例。

[a-z][A-Z][0-9]

并将这些匹配的结果放在一起,您就可以实现您正在寻找的结果。

编辑:

如果您只想匹配字母数字,那么您应该按照Ed Head在评论中的建议^[a-zA-Z0-9]+$进行

答案 3 :(得分:2)

我的解决方案导致了一个长期的表达,因为我将排列所有6种可能性,找到的大写字母,小写字母和所需的数字可以排列在字符串中:

^(.*[a-z].*[A-Z].*[0-9].*|
  .*[a-z].*[0-9].*[A-Z].*|
  .*[A-Z].*[a-z].*[0-9].*|
  .*[A-Z].*[0-9].*[a-z].*|
  .*[0-9].*[a-z].*[A-Z].*|
  .*[0-9].*[A-Z].*[a-z].*)$

编辑:在结尾和开头忘记.*

答案 4 :(得分:1)

不幸的是,MySQL不支持环绕声断言,因此您必须拼写出正则表达式引擎(假设那些字符是合法的):

^(
[A-Za-z0-9]*[a-z][A-Za-z0-9]*[A-Z][A-Za-z0-9]*[0-9][A-Za-z0-9]*|
[A-Za-z0-9]*[a-z][A-Za-z0-9]*[0-9][A-Za-z0-9]*[A-Z][A-Za-z0-9]*|
[A-Za-z0-9]*[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*[0-9][A-Za-z0-9]*|
[A-Za-z0-9]*[A-Z][A-Za-z0-9]*[0-9][A-Za-z0-9]*[a-z][A-Za-z0-9]*|
[A-Za-z0-9]*[0-9][A-Za-z0-9]*[a-z][A-Za-z0-9]*[A-Z][A-Za-z0-9]*|
[A-Za-z0-9]*[0-9][A-Za-z0-9]*[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*
)$

或者,在MySQL中:

SELECT * FROM mytable WHERE mycolumn REGEXP BINARY "^([A-Za-z0-9]*[a-z][A-Za-z0-9]*[A-Z][A-Za-z0-9]*[0-9][A-Za-z0-9]*|[A-Za-z0-9]*[a-z][A-Za-z0-9]*[0-9][A-Za-z0-9]*[A-Z][A-Za-z0-9]*|[A-Za-z0-9]*[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*[0-9][A-Za-z0-9]*|[A-Za-z0-9]*[A-Z][A-Za-z0-9]*[0-9][A-Za-z0-9]*[a-z][A-Za-z0-9]*|[A-Za-z0-9]*[0-9][A-Za-z0-9]*[a-z][A-Za-z0-9]*[A-Z][A-Za-z0-9]*|[A-Za-z0-9]*[0-9][A-Za-z0-9]*[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*)$";

答案 5 :(得分:-1)

[A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * [0-9] + [A- ZA-Z0-9] * | [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * [0-9] + [A-ZA-Z0-9] * [AZ ] + [A-ZA-Z0-9] * | [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * [0-9] + [A-ZA-Z0-9] * | [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * [0-9] + [一-Za-Z0-9] * [AZ] + [A-ZA-Z0-9] * | [A-ZA-Z0-9] * [0-9] + [A-ZA-Z0-9] * [ AZ] + [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] * | [A-ZA-Z0-9] * [0-9] + [A-ZA-Z0 -9] * [AZ] + [A-ZA-Z0-9] * [AZ] + [A-ZA-Z0-9] *