为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
小怪兽爱吃肉 2021-08-23 16:07:58
我正在尝试在 golang 中编写一个正则表达式,它匹配以字母数字开头的字符串,并且后面可以有下划线或连字符,但不以连字符或下划线开头。这是我能想到的,但这在任何地方都匹配字母数字和连字符下划线[A-Za-z0-9_-]所以像sea-food这样的东西会匹配或seafood或sea_food,但不是-seafood或_seafood。
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

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

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

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

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


查看完整回答
反对 回复 2021-08-23
?
PIPIONE

TA贡献1829条经验 获得超9个赞

保持简单。您可以在开始时使用负前瞻。

^(?![_-])[\w-]+$


查看完整回答
反对 回复 2021-08-23
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您需要拆分您的表达式,并分别匹配第一个字符,然后执行以下操作:

[A-Za-Z][A-Za-z0-9_-]*


查看完整回答
反对 回复 2021-08-23
  • 3 回答
  • 0 关注
  • 557 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信