作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
大家早上好。我有一个不能满足我需要的正则表达式。我不能以数字开头或结尾。我必须至少有一个符号,一个大写字母,一个小写字母,当然还有我描述的外部“边界”之间的数字。正则表达式的长度必须至少为 6 个字符,最多为 20 个。下面是我的正则表达式:
^([^0-9](?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_!?@#$%])[^0-9]).{6,20}$
我遇到的问题是我似乎无法获得正确的数字边界和长度。
例如,在正则表达式测试器中这是可以接受的,
MaA1?kss1111111
但不能满足我的需求。
但这是可以接受的,
Mk?1wK
我没有起始编号也没有结束编号。如果有任何帮助,我将不胜感激。
最佳答案
你可以调整你的正则表达式:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_!?@#$%])[^0-9].{4,18}[^0-9]$
它使用 .{4,18}
(比您的长度要求少 2)是因为您在开始和结束时有 [^0-9]
你的正则表达式。
或者(这也是我的首选解决方案)您可以检查 {6,20}
长度并使用否定先行检查开始/结束处是否存在非数字:
^(?![0-9]|.*[0-9]$)(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_!?@#$%]).{6,20}$
关于正则表达式的首位或末位不能有数字,并且长度必须为 6-20 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519358/
我是一名优秀的程序员,十分优秀!