如何编写正则表达式匹配禁止连续重复特殊字符的字符串?
解决连续重复特殊字符的正则匹配问题
修正后的正则表达式
[RegularExpression(@"^[a-zA-Z0-9]+(?:[.&' -][a-zA-Z0-9]+)*$")]
正则逻辑说明
^[a-zA-Z0-9]+:字符串必须以至少一个字母/数字开头(?:[.&' -][a-zA-Z0-9]+)*:非捕获组,用于匹配分隔规则:[.&' -]:允许的特殊字符集合(.、&、单引号、空格、连字符)[a-zA-Z0-9]+:每个特殊字符后必须跟至少一个字母/数字*:该组合可重复0次或多次(支持无特殊字符的纯字母数字字符串,或多段带分隔符的字符串)
$:字符串必须以字母/数字结尾
验证效果
可接受格式(全部匹配成功)
bra-cks、b-r-a-c-ks:连字符后均跟字母数字,符合规则b.r.a.c.ks:点号后均跟字母数字,符合规则bra cks:单个空格后跟字母数字,符合规则
不可接受格式(全部匹配失败)
b..、bra..cks、b..racks、bra...cks:连续特殊字符,缺少中间的字母数字分隔bra cks:连续空格,不符合“单个特殊字符+字母数字”的规则
内容的提问来源于stack exchange,提问作者Mh Dip
相关产品推荐
相关产品推荐

