我想构建一个正则表达式,该表达式仅匹配[A-Za-z0-9\-]
一个附加规则,连字符(-
)不允许出现在开头和结尾。
例如:
my-site
匹配。
m
匹配。
mysite-
不匹配。
-mysite
不匹配。
目前,我已提出^[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]+$
。
但这并不匹配m
。
如何更改正则表达式以满足我的需求?
答案 0 :(得分:0)
使用环顾四周:
^(?!-)[A-Za-z0-9-]*(?<!-)$
这样做的原因是环顾四周并没有消耗输入,因此前瞻和后面的内容都可以在相同的字符上断言。
请注意,如果它是第一个或最后一个字符,则不需要在字符类中转义短划线。