regex - 正则表达式中的最小长度

标签 regex go

我很清楚,要指示正则表达式的最小长度,应该使用这个量词,如果需要至少 4 个字符的 min {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不允许环视断言。

    最佳答案

    您可以使用

    ^[a-zA-Z0-9-]{4,}\b$
    
    regex demo
    详情
  • ^ - 字符串开头
  • [a-zA-Z0-9-]{4,} - 四个或更多 ASCII 字母、数字或连字符
    - \b - 需要字字符(字母、数字或 _)立即出现在当前位置左侧的字边界,因为下一个模式需要...
  • $ - 字符串的结尾。
  • 关于regex - 正则表达式中的最小长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63969623/

    相关文章:

    ios - 验证 uitextbox,使其仅发回 0.5 到 24 之间的数字

    regex - 在 Google Analytics 中使用正则表达式来定义漏斗

    regex - 替换文件中的字符串会覆盖所有内容

    json - 在 golang 中检查 JSON 字符串是否有效

    http - 转到net/http Transport Accept-Encoding : gzip not prompting encoded response

    go - 从另一个模板中获取一个 go 模板的值

    mongodb - mgo/mongodb : aggregate - find all and order by membercount however membercount is an array of member userids

    http - 转到 http : difference between serving/static and/static/

    regex - 如何在 R 中使用 sub 替换 '(' 、 ')' ?

    python - 找到时间戳列表中的最大间隔(Perl 首选)