如何编写不接受单个下划线与连续下划线、仅支持字母和单下划线的正则表达式
正则调整方案
问题原因
你原来的正则存在两个问题:
- 开头的
[^_]强制要求第一个字符不能是下划线,不符合_bsc这类开头带下划线的合法场景 - 开头的
[^_]加上后续的[a-zA-Z_]+要求字符串总长度至少为2,因此无法匹配单个字母
最终正则
^(?!^_$)(?!.*__)[a-zA-Z_]+$
规则说明
各部分对应需求如下:
[a-zA-Z_]+:仅允许大小写字母、下划线两种字符,自动排除数字和其他特殊字符(?!.*__):否定前瞻断言,禁止字符串中出现连续下划线(?!^_$):否定前瞻断言,禁止仅单个下划线的内容
匹配验证
- 合法示例:
abc_dc、_bsc、A全部可正常匹配 - 非法示例:
_、a__b、123、a@c全部匹配失败
内容的提问来源于stack exchange,提问作者andridomace
相关产品推荐
相关产品推荐

