C# 这个正则表达式允许顶级域中的数字吗?
我有一个正则表达式示例。我对regex不熟悉C# 这个正则表达式允许顶级域中的数字吗?,c#,regex,C#,Regex,我有一个正则表达式示例。我对regex不熟悉 ^[a-z0-9](\.?[a-z0-9_-]){0,}@[a-z0-9-]+\.([a-z]{1,6}\.)?[a-z]{2,6}$ 我在想顶级域名在哪里,是从右边开始还是从左边开始?这是什么?您提供的正则表达式不允许顶级域中的数字。 [a-z]{2,6}$是检查顶级域的部分。它只允许小写字符,最少2个字符,最多6个字符 编辑:为了清晰,让我们解构正则表达式。 ^[a-z0-9](\.?[a-z0-9-]){0,}@[a-z0-9-]+\.([a
^[a-z0-9](\.?[a-z0-9_-]){0,}@[a-z0-9-]+\.([a-z]{1,6}\.)?[a-z]{2,6}$
我在想顶级域名在哪里,是从右边开始还是从左边开始?这是什么?您提供的正则表达式不允许顶级域中的数字。
[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-z
和0-9
字符,然后是可选的
,然后是a-z
和0-9
,以及
零到无限次
@[a-z0-9-]+\.([a-z]{1,6}\)?
检查第一部分后面的@以及域的有效性,a-z
和0-9
包括-
后接
,可选a-z
2到6次,此时最多可接受一次,即google.com
,但.com
部分是可选的
[a-z]{2,6}$
检查a-z
2到6次,以及$
指示的字符串结尾。这意味着这是检查顶级域的部分
您的正则表达式将接受:
blah@google.com
以及blah@google.com.com
不太确定您的问题出在这里。正则表达式从左到右运行。@Aars93非常确定正则表达式用于电子邮件。@RonaldAbellano顶级域
是URL中的.com
部分。例如www.google.com
拥有顶级域名.com
。你的正则表达式正在检查电子邮件地址的有效性。明白了!。所以问题就像“给定这个正则表达式,在顶级域中是否允许使用数字”。它是否指定此正则表达式搜索的输入字符串的外观?喜欢“假设正在搜索的字符串是电子邮件地址,此正则表达式是否允许顶级域中的数字”?您是否考虑过类似-谢谢!我不知道“顶级域名”就像我在web开发中知道的域名一样。如果没有“顶级”,我就知道了。值得注意的是,TLD长度超过6个字符。@RonaldAbellano我已经解构了你的正则表达式,希望这能帮助你理解正则表达式的功能。我强烈建议打开一个正则表达式教程和一个正则表达式测试站点来获得一些实践。