我正在努力获得以下条件的正则表达式:
使用以下条件验证用户ID:
当我单独检查但未合并时正常工作的正则表达式:
^(?=[a-zA-Z0-9]{10}$).*?(?=[A-Z][^A-Z]*?[A-Z]).*?(?=\d\D*?\d\D*?\d).*
有人可以澄清为什么这不起作用吗?
将每个条件分开时工作:
一个。 re.findall(r'^(?=[a-zA-Z0-9]{10}$)', inp)
湾re.findall(r'(?=[A-Z][^A-Z]*?[A-Z])', inp)
...
答案 0 :(得分:0)
你可以使用正则表达式
(?!.*(.).*\1)(?=.*[A-Z].*[A-Z])(?=.*\d.*\d.*\d)[a-zA-Z0-9]{10}
请参阅regex101 demo。
(?!。(。)。 \ 1)确保不会重复任何字符
(?=。 [A-Z]。 [A-Z])确保至少存在2个大写字母
(?=。 \ d。 \ d。* \ d)确保至少存在3位数字
[a-zA-Z0-9] {10}匹配10个字母数字字符
答案 1 :(得分:0)