如何编写匹配16位字符且排除纯16位数字的正则表达式
可用正则方案
直接使用带负向前瞻的正则即可满足需求:^(?!\d{16}$)\w{16}$
规则拆解
^匹配字符串的起始位置(?!\d{16}$)负向前瞻断言,要求字符串从头到尾不能是纯16位数字,只要存在至少1个非数字字符就符合该断言\w{16}匹配16位由字母、数字、下划线组成的字符,和你原有正则的字符匹配规则完全一致$匹配字符串的结束位置
匹配测试结果
- 符合要求,匹配成功:
MDA0ODcyfEFBQ3w3 - 纯数字,匹配失败:
2107260040003208 - 长度不符合16位的字符串同样会匹配失败
可选调整
如果你的业务场景不需要匹配下划线,仅允许字母和数字,可以把\w替换为[a-zA-Z0-9],调整后正则为:^(?!\d{16}$)[a-zA-Z0-9]{16}$
内容的提问来源于stack exchange,提问作者Waddah Shamroukh
相关产品推荐
相关产品推荐

