此正则表达式是否允许顶级域中的数字? [关闭]

问题描述 投票:-1回答:1

我有这个正则表达式的例子。我是正则表达式的新手。

^[a-z0-9](\.?[a-z0-9_-]){0,}@[a-z0-9-]+\.([a-z]{1,6}\.)?[a-z]{2,6}$

我在想这里的顶级域名在哪里,是从右边还是左边开始?还有,这是什么?

c# regex
1个回答
3
投票

您提供的正则表达式不允许顶级域中的Numbers。 [a-z]{2,6}$是检查顶级域名的部分。它只允许使用小写字符,最少2个字符,最多6个字符。

编辑:让我们解析你的正则表达式的清晰度。 ^[a-z0-9](\.?[a-z0-9_-]){0,}@[a-z0-9-]+\.([a-z]{1,6}\.)?[a-z]{2,6}$ ^[a-z0-9](\.?[a-z0-9_-]){0,}部分从字符串的开头检查,如果只允许的字符是a-zand 0-9,然后是可选的.,接着是a-zand 0-9以及_-零到无限次。

@[a-z0-9-]+\.([a-z]{1,6}\.)?在第一部分之后检查@以及域的有效性,a-z0-9包括-,然后是.,可选a-z2到6次,最多一次i.E. google.com在这一点上是可以接受的,但是.com部分是可选的。

[a-z]{2,6}$检查a-z 2至6次,并由$指示字符串的结尾。这意味着这是检查顶级域名的部分。

你的正则表达式应该接受:qazxsw poi以及qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.