入力パラメーターを検証するためにストアド プロシージャを使用しています。入力パラメーターには、az と AZ および 0-9 が含まれている必要があります。
例:
aS78fhE0
-> 正しい
76AfbRZt
-> 正しい
76afbrzt
-> 正しくない (大文字の AZ を含まない)
asAfbRZt
-> 正しくない (数字の 0-9 を含まない)
4QA53RZJ
-> 正しくない (小文字の az を含まない)
その正規表現上記の例のように入力パラメータを検証できますか?
どうもありがとう、
Praditha
UPDATE
英数字以外のその他の文字
は使用できません MySQL バージョン 5 を使用しています
6 に答える
ジョンズポストとその後のコメントからさらに:
必要な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]+$'
文字列に英数字のみが必要な場合
先読みアサーションを使用すると、次のようにすることができます。
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$/
update : mysql はルックアラウンド アサーションをサポートしていないようです。
ケースごとにテストするために、3 つの個別の正規表現に分割できます。
[a-z]
、[A-Z]
、および[0-9]
そしてそれらの一致の結果を一緒にすると、探している結果を得ることができます。
編集:
英数字のみを一致させたい場合は^[a-zA-Z0-9]+$
、コメントで Ed Head が提案したようにする必要があります
私の解決策は、見つかった大文字、小文字、および必要な数字を文字列に配置できる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].*)$
.*
編集:最後と最初のを忘れました。
残念ながら、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]*)$";
[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] + [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] * | [a-zA-Z0-9] * [0-9] + [a-zA-Z0-9] * [az] + [a-zA-Z0-9] * [AZ] + [a-zA-Z0-9] *