我正在重写我们的密码验证规则,以满足asp.net c#网络表单应用程序的一系列非常严格的要求。
我正在使用大部分的正则表达式(例如最小字符,允许的字符等)。
我在寻找解决方案时遇到问题的一个要求如下: 必须包含4个允许的字符类中的2个字符。
在这种情况下,允许的类是大写,小写,数字和特殊(US ASCII)。
如果有人可以帮助我们如何写这个可以理解的内容。 谢谢
答案 0 :(得分:1)
评论者都表达了有效的担忧,但我只是想分享这种方法来匹配“4个元素中的至少2个”:
(?:.*?(?:a(?!.*a)|b(?!.*b)|c(?!.*c)|d(?!.*d))){2}
字母“a”到“d”可以替换为此问题的适当字符类,但也可以扩展为更一般地匹配“Y个非重叠子表达式中的至少X个”。