我需要一个子域名的正则表达式,但我似乎无法找到它并且在写它们时没用。
我需要一个正则表达式匹配:
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”才能匹配。
答案 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"
匹配。