我试图在golang中编写一个regexp,它匹配以字母数字开头的字符串,后面可以有下划线或连字符,但不能以连字符或下划线开头。
以下是我可以提出的内容,但这与任何地方的字母数字和连字符下划线相匹配
[A-Za-z0-9_-]
所以像海鲜这样的东西可以匹配,或海鲜或海洋食物,但不是 - 海鲜或_seafood。
答案 0 :(得分:4)
您需要使用^
来表示字符串的开头,并使用$
作为结尾,然后使用两个字符类:
^[A-Za-z0-9][A-Za-z0-9_-]*$
要禁用字符串末尾的连字符和下划线,请尝试:
^[A-Za-z0-9]([A-Za-z0-9_-]*[A-Za-z0-9])?$
答案 1 :(得分:2)
答案 2 :(得分:0)
您需要拆分表达式,并分别匹配第一个字符,然后执行以下操作:
[A-ZA-Z] [A-ZA-Z0-9 _-] *