将域名与正则表达式匹配

时间:2010-07-31 13:21:35

标签: c# .net regex

有人可以告诉我怎样才能编写正则表达式匹配abc.com.ae或abc.net.af或其他任何东西,ae是字符串中的最后一个是可选的

这是成功的/但不是。不知道为什么

^[a-z]{1,25}.[a-z]{3}$

答案

^[a-z]{1,30}\.[a-z]{3}((\.)[a-z]{2})?$

3 个答案:

答案 0 :(得分:4)

答案是:写\.而不是.,因为.表示“任何字符”。

答案 1 :(得分:0)

您可以使用\ u转义码匹配特定字符,然后紧跟十六进制格式的该字符的unicode编号,它也必须只有四位数字。我认为句号是完整的。

在你的'/'工作但不是'。'的例子中,这是因为'/'被识别为普通字符而不需要转义,而句号在c#regex中具有不同的含义(它匹配任何角色。)

如果您仍然不确定,这里是C#中正则表达式的有用指南:http://www.radsoftware.com.au/articles/regexlearnsyntax.aspx 这一个包含网址正则表达式的示例:http://www.radsoftware.com.au/articles/regexsyntaxadvanced.aspx

答案 2 :(得分:0)

我听起来你需要一些环境来学习正则表达式。

学习正则表达式的最佳方法是使用交互式正则表达式模拟器:在表达式中键入,它会立即为您提供结果。

有一些免费(而不是免费)的正则表达式模拟器可用: