我正在尝试获取一个执行以下操作的正则表达式:
我找到了这个正则表达式:
((?=.*[^a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?!\s).{8,})
负责上面的第2点和第3点,但是如何将第一个要求添加到上面的正则表达式中呢?
我知道我可以做两个表达式,然后
\s
但是我想把它全部集中在一起,我尝试做类似?!\s
的事情,但是我无法让它发挥作用。有什么想法吗?
答案 0 :(得分:17)
^(?=.*[^a-zA-Z])(?=.*[a-z])(?=.*[A-Z])\S{8,}$
应该这样做。但请注意,您只是验证ASCII字母。 Ä
不是符合您要求的信件吗?
\S
表示“除空格之外的任何字符”,因此通过使用此字符而不是点,并通过将正则表达式锚定在字符串的开头和结尾,我们确保字符串不包含任何字符空格。
我还删除了整个表达式周围不必要的括号。
答案 1 :(得分:7)
^((?=.*[^a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{8,})$