-4

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

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

sub1.mydomain.com
sub1.mydomain.local

但不匹配:

www.mydomain.com
www.mydomain.local

或者:

[任何协议]//[除 www 之外的任何子域].mydomain.[anysuffix]

有人想试试这个吗?

更新(我有什么)。

是的,我现在有:

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

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

4

1 回答 1

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://
子
废话
com

如果你替换"http://sub.blah.com""http://www.blah.com"or"www.blah.com""blah.com",程序什么也不打印(它找不到匹配项)。"sub.blah.com"但是匹配。

于 2013-04-27T02:43:07.800 回答