正则表达式以字母数字和连字符开头,后面在字符串中使用下划线

wor*_*ith 1 regex go

我正在尝试在 golang 中编写一个正则表达式,它匹配以字母数字开头的字符串,并且后面可以有下划线或连字符,但不以连字符或下划线开头。

这是我能想到的,但这与任何地方的字母数字和连字符下划线匹配

[A-Za-z0-9_-]
Run Code Online (Sandbox Code Playgroud)

所以像seafood这样的东西会匹配orseafood或sea_food,但不能匹配-seafood或_seafood。

Pre*_*aul 5

您需要使用 a^来指示字符串的开头和$结尾,然后使用两个字符类:

^[A-Za-z0-9][A-Za-z0-9_-]*$

要禁止在字符串末尾使用连字符和下划线,请尝试:

^[A-Za-z0-9]([A-Za-z0-9_-]*[A-Za-z0-9])?$