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

如何编写仅允许[-_.]单种分隔符且首尾不含分隔符的正则表达式

符合要求的正则表达式
^[a-zA-Z0-9]+(?:([-_.])[a-zA-Z0-9]+(?:\1[a-zA-Z0-9]+)*)?$

规则逻辑说明

  • 首尾限制:开头和结尾都强制匹配字母/数字,完全避免分隔符出现在首尾的情况
  • 分隔符唯一性限制:第一次匹配到的分隔符会被捕获到分组1,后续所有出现的分隔符必须和分组1的内容完全一致,天然避免混用多种分隔符的问题
  • 支持连续相同分隔符:比如google--facebook这类连续使用同一个分隔符的场景也可以正常匹配

原正则的问题

你之前写的^[a-z-A-Z0-9_.]$存在三个明显缺陷:

  • 仅能匹配长度为1的字符串,完全无法满足多字符场景需求
  • 没有限制分隔符不能出现在首尾
  • 没有做分隔符唯一性校验,允许三种分隔符混用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 00:15:03