以下约束的正则表达式是什么?
|
我想要一个密码字符串的正则表达式,该字符串至少包含以下四种字符中的三种:
英文小写字母(a到z)。
英语大写字符(A到Z)。
以10为基数(0到9)。
非字母数字字符(例如,!,$,#,%)。
并且应至少包含8个字符。
没有找到相关结果
已邀请:
5 个回复
惜堡沁戚
当其他人必须维护您的代码(或者即使您必须从现在开始六个月维护代码)时,这也可能更具可读性。 现在,我意识到这可能并不总是可行的(例如,您可能只限于一个只允许使用一个正则表达式进行验证的框架)。 但是,如果可能的话,我强烈建议您考虑一下。您应始终尝试进行优化的第一件事是可读性。 a您可能会得到大量超前的正则表达式中的一个,或者包含以
分隔的十六种排序可能性的单个正则表达式。 这些都不像简单的代码段那样高效或可读。
驮帽俺篮号
箩冀娥
如果您坚持使用正则表达式,则可以使用与.NET正则表达式平衡组的乐趣类似的模式:
您还可以允许Unicode类:
公藕
(锚定是为了在失败时提高效率,没有它就可以工作)。 密码可能无关紧要,但是对于相同类型的字符,上述版本可能会多次浏览整个字符串,尤其是在失败时。您可能会以可读性为代价将其排除在外:
貉骂