用户名密码正则表达式

Username Password Regular Expression

我正在尝试创建一个正则表达式来匹配文件上的用户名密码对,这些文件至少有 1 个大写字母、1 个小写字母、1 个数字和 1 个符号。我正在使用以下正则表达式:

\b(([a-zA-Z0-9]){5,20}((\\=)|( ?([=:]|(->)) ?)|( =\))((?=.[a-z#{@specialDown}])(?=.*[A-Z#{@specialUp}])(?=.+[0-9])(?=.+[\!\@\#$\%\^\&\*\(\)\_\+\|\~\-\=\`\{\}\[\]\:\;\'\<\>\?\,\.\/])).{8,20})\b

specialDown和specialUp变量分别是小写和大写的特殊字母。

这里的问题是我得到的密码带有空格,这是我不想要的。

有人能帮忙吗?

您可以将正则表达式中的所有 . 替换为 [^\s]\S 以排除匹配的空格。此外,您有几个 ? 模式,它们也允许有空格。请检查是否需要。

因此,固定模式将如下所示:

\b(([a-zA-Z0-9]){5,20}((\\=)|( ?([=:]|(->)) ?)|( =\))((?=[^\s][a-z#{@specialDown}])(?=[^\s]*[A-Z#{@specialUp}])(?=[^\s]+[0-9])(?=[^\s]+[\!\@\#$\%\^\&\*\(\)\_\+\|\~\-\=\`\{\}\[\]\:\;\'\<\>\?\,\[^\s]\/]))[^\s]{8,20})\b