You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写匹配无重复字母的逗号分隔字符串的Regex?

正则表达式(不区分大小写,日常场景通用)

/^(?!.*([a-zA-Z]).*\1)(?:[a-zA-Z],)+[a-zA-Z]$/i
如果要求区分大小写(a和A视为不同字符),去掉末尾的i修饰符即可。

规则拆解

  • 开头^和结尾$限定匹配整个字符串,避免部分匹配生效
  • (?!.*([a-zA-Z]).*\1)为负向前瞻逻辑:捕获任意一个字母后,检查后续字符串是否存在重复的相同字母,存在则直接判定不匹配,解决字母重复问题
  • (?:[a-zA-Z],)+ 匹配1次及以上「单个字母+逗号」的组合,天然避免逗号开头、连续逗号的问题,同时保证至少有2个及以上字母
  • 末尾的[a-zA-Z]匹配最后一位字母,解决逗号结尾的问题

验证效果

可正确匹配/拦截所有示例场景:

  • 匹配成功:A,B、A,B,C,D,E,F
  • 匹配失败:D,D,A(字母重复)、,B,C(逗号开头)、B,C,(逗号结尾)、A,,B,C(连续逗号)

内容的提问来源于stack exchange,提问作者Nitesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:48:01