我最近用正则表达式进行了测试,但是我不熟练。 我尝试为模式写一些东西:
我写了类似"(^[a-zA-Z]).(/w{6,16}).*(?<!-)$"
这样的东西,当然这是不正确的,也不完整。
我对正确的解释很感兴趣,如果您认为应该的话,您可以否决我的问题。
答案 0 :(得分:1)
您可以使用
^[a-zA-Z](?=.{5,15}$)[^-]*(?:-[^-]+)?$
请参见regex demo
详细信息
^
-字符串的开头[a-zA-Z]
-ASCII字母(?=.{5,15}$)
-正数lookahead,需要5到15个字符,从当前位置开始直到字符串结尾[^-]*
-(a negated character class)除-
以外的0多个字符(?:-[^-]+)?
-可选的non-capturing group,与1个或0个重复匹配
-
-连字符[^-]+
-除-
以外的1个以上的字符$
-字符串结尾