我正在使用存储过程来验证输入参数。输入参数必须包含a-z和A-Z以及0-9
例如:
aS78fhE0
- >正确
76AfbRZt
- >正确
76afbrzt
- >不正确(不包含大写字母A-Z)
asAfbRZt
- >不正确(不包含数字0-9)
4QA53RZJ
- >不正确(不包含小写字母a-z)
什么正则表达式可以验证输入参数,如上例所示。?
非常感谢,Praditha
更新
不允许使用除字母数字以外的其他字符我正在使用MySQL版本5
答案 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] *