适用于跟随anysubdomain.domain的子域的正则表达式

时间:2013-04-27 02:31:38

标签: regex

我需要一个子域名的正则表达式,但我似乎无法找到它并且在写它们时没用。

我需要一个正则表达式匹配:

  

sub1.mydomain.com
  sub1.mydomain.local

但不要匹配:

  

www.mydomain.com
  www.mydomain.local

或者:

  

[any protocol] // [anysubdomain除了www] .mydomain。[anysuffix]

有人在意这个吗?

更新(我拥有的)。

是的我刚才:

^(?!.*www)[a-z]*(.)?([A-Za-z0-9_-]*)\.([A-Za-z]*)(.*)$

但是我需要“mydomain.com”才能匹配。

1 个答案:

答案 0 :(得分:0)

以下正则表达式有效:

(\w+://)?(?!www)(\w+)\.(\w+)\.(\w+)

所以,在C#中:

static void Main(string[] args)
{
    var match = Regex.Match("http://sub.blah.com", @"(\w+://)?(?!www)(\w+)\.(\w+)\.(\w+)");
    foreach (var g in match.Groups)
    {
        Console.WriteLine(g);
    }
}

打印

http://sub.blah.com
http://
sub
blah
com

如果您将"http://sub.blah.com"替换为"http://www.blah.com""www.blah.com""blah.com",程序将不会打印任何内容(它找不到匹配项)。但"sub.blah.com"匹配。