如何组合正则表达式:匹配无空格、含至少2大写及小写/符号的19-90位字符串
整合正则表达式满足所有要求
嘿,我来帮你把这些条件合并成一个高效的正则表达式!咱们先把所有要求列清楚,再逐个对应到正则的各个部分:
核心要求回顾
- 字符串长度在19-90字符之间
- 无任何空格
- 至少包含2个大写字母(A-Z)
- 至少包含1个小写字母(a-z)
- 至少包含1个符号(非字母数字且非空格的字符,若你有特定符号范围可调整)
最终整合的正则表达式
^(?=(.*[A-Z]){2,})(?=.*[a-z])(?=.*[^a-zA-Z0-9 ])[^ ]{19,90}$
逐个部分解析
让我拆解一下这个正则的每个模块,帮你理解它的逻辑:
^:匹配字符串的起始位置,确保我们从开头就开始检查(?=(.*[A-Z]){2,}):正向预查,用来确保字符串中至少存在2个大写字母。(.*[A-Z]){2,}表示匹配任意字符后接一个大写字母,这个组合至少出现2次(?=.*[a-z]):另一个正向预查,确保字符串中至少有一个小写字母(?=.*[^a-zA-Z0-9 ]):正向预查,确保字符串中存在至少一个非字母、非数字、非空格的符号。如果你需要限定特定符号(比如只允许!@#$%^&*),可以把这部分改成(?=.*[!@#$%^&*])[^ ]{19,90}:匹配19到90个非空格字符,直接满足长度限制和无空格的要求$:匹配字符串的结束位置,确保整个字符串都符合规则
测试示例
- ✅ 符合要求的字符串:
XyZ123!abcdefghijklmnopqrstuvwxyz(长度足够、2个以上大写、有小写、有符号、无空格) - ❌ 不符合的情况:
abcdefghijklmnopqrstuvwxyz:缺少大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ:缺少小写字母Abcdefghijklmnopqrstuvwxyz:缺少符号Ab cdefghijklmnopq!rstuvwxyz:包含空格Ab!:长度不足19字符
内容的提问来源于stack exchange,提问作者eera5607
相关产品推荐
相关产品推荐

