我正在学习正则表达式并且有一个问题; 答案将帮助我更好地理解正则表达式.
输入是用户名.此用户名应包括至少4个小写字母(az),一个上部字符(AZ)和2个数字.它最多也应该有10个字符.如何制作正则表达式来测试这些要求?
对每个条件使用带有先行/ lookbehinds的正则表达式.如下所示:
^(?=(.*[a-z]){4})(?=.*[A-Z])(?=(.*\d){2}).{7,10}$
Run Code Online (Sandbox Code Playgroud)
我认为正则表达式是自我解释的,告诉我你是否希望我对每个部分进行解释.
好的,根据OP的要求解释:
(?=ABC),(?!ABC)并且(?<=ABC),(?<!ABC)-是向前看符号和前相匹配的组/你的表情后,不包括他们在结果lookbehinds.一个=是积极的,一个!是消极的.
例如,(?=(.*[a-z]){4})确保main表达式(.{7,10})具有至少4个小写字符.同样,我们每个条件都有一个..{7,10}确保最大10(最低7 - 4低+ 1高+ 2位)
拥有如此严格约束的密码(这样的用户名更糟糕)不建议像@SLaks那样提及,但是可以进行一些很好的正则表达式学习:)此外,正则表达式并不以性能而闻名,尤其是巨大的性能.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |