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

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

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

[A-Za-z0-9_-]

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


小怪兽爱吃肉
浏览 558回答 3
3回答

千巷猫影

您需要使用 a^来指示字符串的开头和$结尾,然后使用两个字符类:^[A-Za-z0-9][A-Za-z0-9_-]*$要禁止在字符串末尾使用连字符和下划线,请尝试:^[A-Za-z0-9]([A-Za-z0-9_-]*[A-Za-z0-9])?$

PIPIONE

保持简单。您可以在开始时使用负前瞻。^(?![_-])[\w-]+$

斯蒂芬大帝

您需要拆分您的表达式,并分别匹配第一个字符,然后执行以下操作:[A-Za-Z][A-Za-z0-9_-]*
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go