regex - 正则表达式中的最小长度
问题描述
我很清楚,要指示正则表达式的最小长度,应该使用这个量词,如果需要最少 4 个字符{4,}
我正在尝试编译一个正则表达式,go
这将允许
总共最少 4 个字符,包括连字符
只有字母数字和连字符
最后一个字符不应该是连字符
所以有人建议我使用这个:
^[a-zA-Z0-9-]*[a-zA-Z0-9]$
这似乎可以完成这项工作。
现在,鉴于我想强制执行最少 4 个字符,我对其进行了一些修改,如下所示:
^[a-zA-Z0-9-]*[a-zA-Z0-9]{4,}$
但是,鉴于以下模式,这似乎不起作用
eee0-lll
不匹配(根据我的要求应该)。
我面临的限制之一是go
不允许环视断言。
解决方案
您可以使用
^[a-zA-Z0-9-]{4,}\b$
查看正则表达式演示
细节
^
- 字符串的开始[a-zA-Z0-9-]{4,}
- 四个或更多 ASCII 字母、数字或连字符 -\b
一个单词边界,需要一个单词 char(字母、数字或_
)立即出现在当前位置的左侧,因为下一个模式需要...$
- 字符串结束。
推荐阅读
- azure-devops - 无法完全删除构建
- node.js - 如何让 this.setState 在 React-Native 中工作
- r-markdown - 如何在 rmarkdown 中嵌入 highcharter 以共享(不是循环)
- ios - iOS Swift Firebase在应用程序启动时检查用户不起作用
- unity3d - 有没有办法知道什么时候没有人用 Agora (Unity) 广播
- selenium - 如何在 qaf 中使用 edgeDriver
- c++ - C++强制实现方法?
- javascript - 单击时更改背景颜色(使用 javascript 中的地图功能)
- excel - 设置用户表单边框颜色属性
- html - 在 HTML 页面中显示经过身份验证的用户