C#中的正则表达式问题

Jea*_*agr 0 c# regex

我正在尝试创建一个C#例程,删除所有以下前缀和后缀,并只返回域的根词:

var stripChars = new List<string> { "http://", "https://", "www.", "ftp.", ".com",  ".net", ".org", ".info", ".co", ".me", ".mobi", ".us", ".biz" };
Run Code Online (Sandbox Code Playgroud)

我使用以下代码执行此操作:

originalDomain = stripChars.Aggregate(originalDomain, (current, repl) => Regex.Replace(current, repl, @"", RegexOptions.IgnoreCase));
Run Code Online (Sandbox Code Playgroud)

这似乎几乎适用于所有情况.但是,今天我发现将"originalDomain"设置为"NameCheap.com"并不会返回:

NameCheap
Run Code Online (Sandbox Code Playgroud)

喜欢它应该,但是:

NCheap
Run Code Online (Sandbox Code Playgroud)

谁能看到这个并告诉我出了什么问题?任何帮助,将不胜感激.

fge*_*fge 13

这是正常的:正则表达式中的点表示任何字符.

因此,.me比赛ameNameCheap.

用反斜杠逃脱点.

此外,您最好使用专用URI API进行此类操作.