如何编写仅允许. - _出现在字母数字中间的正则表达式?
正则表达式解决方案
你需要的正则表达式如下:
^[A-Za-z0-9]+(?:[.\-_][A-Za-z0-9]+)*$
规则说明
^标识字符串起始位置,确保匹配从字符串开头开始[A-Za-z0-9]+要求字符串首位必须是字母或数字,避免特殊符号出现在开头(?:[.\-_][A-Za-z0-9]+)*是非捕获组,可重复0次或多次:- 每次先匹配
.、-、_中的任意一个特殊字符 - 特殊字符后必须紧跟至少1个字母或数字,保证特殊字符只会出现在字母/数字之间,不会连续出现,也不会出现在字符串末尾
- 每次先匹配
$标识字符串结束位置,确保匹配覆盖整个字符串
匹配效果验证
合法可匹配内容
- 纯字母/数字:"stephan"、"mike03"、"12345"
- 中间带允许的特殊符号:"s.johnson"、"st_steward"、"john-johnson"、"324_231351231"
非法不可匹配内容
- 特殊符号开头:"--123"、"_steve"、".info"
- 特殊符号结尾:"stefan_johnson_"
- 连续特殊符号:"....."、"john_-"
内容的提问来源于stack exchange,提问作者Math Student
相关产品推荐
相关产品推荐

