正则表达式的东西

我想创建一个自定义的正则表达式。这将跟踪用户名的第一个字符应该是字母。

后跟字母数字或最多可以出现一次特殊字符(-_)。我可以检查用户名是否以字母开头,^[a-zA-Z]+$但不确定如何检查最多出现一次特殊字符。欢迎任何想法。

谢谢


月关宝盒
浏览 203回答 2
2回答

MYYA

根据我对您帖子的理解,您希望以下内容相匹配。a-afdsafdaafdsafdaafdsa_fdaafdsa-fdaAfdsa-FD以下不匹配:aa-dsa-fdaa-dsa_fd-afdsafd_afdsafd尝试 /^[a-z](?:(?![a-z]+[\-_])[\-_])?[a-z]+(?:(?<![a-z]+[\-_])[\-_]?)[a-z]+?$/i所述i改性剂能够不区分大小写匹配。在^与$锚确保整个字符串我们正则表达式匹配。[a-z]&nbsp;检查第一个字符是否是字母表。(?:(?![a-z]+[\-_])[\-_])?)&nbsp;提前检查是否没有稍后使用的“特殊字符”,如果没有,我们可以选择匹配一个特殊字符。[a-z]+&nbsp;匹配一个或多个字母。(?:(?<![a-z]+[\-_])[\-_]?)&nbsp;与 4 做同样的事情,只是它向后看。[a-z]+?&nbsp;可选择匹配一个或多个字母。https://regexr.com/3t86l编辑:我注意到这aAfdsaFd_也应该匹配。以上与此不符。稍微修改@Wiktor Stribiżew 的评论,^[a-zA-Z][a-zA-Z0-9]*(?:[-_][a-zA-Z0-9]*)?$似乎适用于所有情况。这样更干净、更高效。所有功劳都归功于@Wiktor Stribiżew。

慕神8447489

您可以匹配字符串开头的大写或小写字符^[a-zA-Z],匹配零次或多次字母数字[a-zA-Z0-9]*后跟可选的连字符或下划线[-_]?。最后匹配零次或多次字母数字,[a-zA-Z0-9]*$直到字符串结束。^[a-zA-Z][a-zA-Z0-9]*[-_]?[a-zA-Z0-9]*$
打开App,查看更多内容
随时随地看视频慕课网APP