我试图从一段文本中解析GitHub用户名(以@开头),以便将它们链接到相关的配置文件.
GitHub用户名约束是:
例如,以下文字:
示例@valid hello @ valid-username:@ another-valid-username,@ -invalid @ in - valid @ ignore-last-dash- an@email.com @ another-valid?
剧本...
应该匹配:
应该忽略:
我通过使用以下方式与JavaScript合理地接近:
/\B@((?!.*(-){2,}.*)[a-z0-9][a-z0-9-]{0,38}[a-z0-9])/ig
Run Code Online (Sandbox Code Playgroud)
但这不是用户名与单个字符匹配(例如@a).
以下是我的测试:https://regex101.com/r/rZ5eW1/2
目前的正则表达式是否有效?我如何匹配单个非连字符?