用于验证多个规则的错误模式

时间:2016-10-19 16:10:47

标签: regex

我需要为这个规则开发一个模式正则表达式:

第一个字必须是一个字母。

至少一个号码。

至少一个大写字母。

至少一个小写字母。

至少一个符号(可以是以下任何一个: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个字符。

我有这种模式,但它不起作用:

$, @, #, *, /, &, !, ¿, ?, ¡, +, -, %, (, ), =

2 个答案:

答案 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}