首页 > 解决方案 > 正则表达式中的最小长度

问题描述

我很清楚,要指示正则表达式的最小长度,应该使用这个量词,如果需要最少 4 个字符{4,}

我正在尝试编译一个正则表达式,go这将允许

所以有人建议我使用这个:

^[a-zA-Z0-9-]*[a-zA-Z0-9]$

这似乎可以完成这项工作。

现在,鉴于我想强制执行最少 4 个字符,我对其进行了一些修改,如下所示:

^[a-zA-Z0-9-]*[a-zA-Z0-9]{4,}$

但是,鉴于以下模式,这似乎不起作用

eee0-lll

匹配(根据我的要求应该)

我面临的限制之一是go不允许环视断言。

标签: regexgo

解决方案


您可以使用

^[a-zA-Z0-9-]{4,}\b$

查看正则表达式演示

细节

  • ^- 字符串的开始
  • [a-zA-Z0-9-]{4,}- 四个或更多 ASCII 字母、数字或连字符 -\b一个单词边界,需要一个单词 char(字母、数字或_)立即出现在当前位置的左侧,因为下一个模式需要...
  • $- 字符串结束。

推荐阅读