正则表达式中的最小长度

时间:2020-09-19 14:02:25

标签: regex go

我很清楚,如果需要至少4个字符{4,}

,则应使用此量词来表示正则表达式的最小长度。

我正在尝试在go中编译允许使用的正则表达式

  • 至少有4个字符,总计 ,包括连字符

  • 仅字母数字和连字符

  • 最后一个字符应该是连字符

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

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

这似乎可以完成工作。

现在,考虑到我要强制执行最少4个字符,我对其进行了如下修改:

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

但是,鉴于以下模式,这似乎无法完成工作

eee0-lll

match(根据我的要求)。

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

1 个答案:

答案 0 :(得分:2)

您可以使用

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

请参见regex demo

详细信息

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