正则表达式匹配精确模式

时间:2019-07-10 07:52:42

标签: swift regex

我对正则表达式有一些经验,但是这种情况似乎太难了。

我要检查密码是否与某些模式匹配:

  • A-Z
  • a-z
  • 0-9
  • !#$%

每个类别必须重复至少一次,并且全长应为4到12个符号。 例如:"fnE53@""120nIq@!""q@P1""badPass#169"

我尝试了几种表达式:

"[a-z]+[A-Z]+[1234567890]+[!#$%]+"很好,但是考虑了组的顺序

"(?=^[A-Z]+[a-z]+[0-9]+[!#$%]+$)"更好,不允许键入不合适的字符(这一点很重要),但再次考虑顺序

我认为使用myString.count更容易检查12个符号的上限。但是,我仍然不知道如何按照字符组的顺序解决这个问题。

有什么想法完全符合我的模式吗? 谢谢!

0 个答案:

没有答案