加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 正向前瞻字符必须只出现一次并且是可选的

发布时间:2020-12-14 05:37:48 所属栏目:百科 来源:网络整理
导读:^(?=.*[-_.]?)[a-z][a-z0-9-_.]{1,13}[a-z0-9]$ 必须以一封信开头. 必须以字母或数字结尾. 长度必须介于3到15个字符之间. 可能只存在字母,数字和[-_.]. [-_.]是可选的,但使用时只能在整个字符串中出现ONCE. 我在最后一个要点上遇到了麻烦. 尝试使用(?=.* [-
^(?=.*[-_.]?)[a-z][a-z0-9-_.]{1,13}[a-z0-9]$

>必须以一封信开头.
>必须以字母或数字结尾.
>长度必须介于3到15个字符之间.
>可能只存在字母,数字和[-_.].
> [-_.]是可选的,但使用时只能在整个字符串中出现ONCE.

我在最后一个要点上遇到了麻烦.

尝试使用(?=.* [-_.]?)进行预测并确保每当使用[-_.]时,它应该只出现一次.但它似乎不起作用,因为当我使用像__- bc34或a.b_c-d这样的字符串测试时,它匹配,但它应该只允许像a_bc34这样的东西.

高级正则表达式不是我最强的,所以我很感激任何帮助!

解决方法

我做:

^(?=.{3,15}$)[a-z][a-z0-9]*[-_.]?[a-z0-9]+$

说明:

^               : start of string
(?=.{3,15}$)    : lookahead,assumes there is from 3 to 15 character
[a-z]           : a letter
[a-z0-9]*       : 0 or more alphanum
[-_.]?          : optional -,_ or .
[a-z0-9]+       : 1 or more alphanum
$              : end of string

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读