我需要为这个规则开发一个模式正则表达式:
第一个字必须是一个字母。
至少一个号码。
至少一个大写字母。
至少一个小写字母。
至少一个符号(可以是以下任何一个:SELECT *
FROM my_tables
WHERE CASE WHEN my_id in (SELECT my_other_id
FROM my_other_tables)
AND some_slow_func(arg) BETWEEN 1 AND 2
THEN 1
ELSE 0
END = 1;
)
您必须是8个字符。
我有这种模式,但它不起作用:
$, @, #, *, /, &, !, ¿, ?, ¡, +, -, %, (, ), =
答案 0 :(得分:0)
你会尝试 REGEX
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(\D\W)){8,}.+$
<强>:d 强>
答案 1 :(得分:0)
您可以使用
^(?=.*[A-Z])(?=.*[a-z])(?=.*[$@#*\/&!¿?¡+%()=-])[a-zA-Z](?=.*[0-9])[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}$
请参阅regex demo
<强>详情:
^
- 字符串开头(?=.*[A-Z])
- 字符串右侧某处必须至少有1个大写ASCII字母(?=.*[a-z])
- 字符串右侧某处必须至少有1个小写ASCII字母(?=.*[$@#*\/&!¿?¡+%()=-])
- 字符串中的字符类必须至少有一个字符串[a-zA-Z]
- 第一个字母是ASCII字母(?=.*[0-9])
- 字符串[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}
- 来自char类的7个字符,字母,数字,特殊字符$
- 字符串结束。请注意,如果您在字符串中允许任何字符,请将[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}
替换为.{7}
。