正则表达式仅从子域中提取域

时间:2015-07-09 08:13:28

标签: c# .net regex

我将使用带

的表达式
Regex.Replace();

用“”替换其余部分。

输入: http://therealzenstar.blogspot.fr 输出: blogspot.fr

1 个答案:

答案 0 :(得分:0)

只是迭代Jens'评论,我们必须猜测:当出现其他信息时,您的预期输出是多少,例如: http://therealzenstar.blogspot.fr/somedata.html。它还在blogspot.fr吗?这些例子是否需要加入?

你说你要替换"其他一切"与""Replace()将替换与您想要的内容相匹配的所有内容。因此,要将其替换为"",您需要匹配不想要的所有内容。但是,它可能更容易捕捉你想要的东西并用$ 1替换所有的匹配。

假设您始终只想要domain.xx,即使出现更多信息。这样的事情可行:^(?:https?:\/\/)?[^\/\s]*\.([^.\s\/]*\.[^.\s\/]*)(?:$|\/.*),如图所示:https://regex101.com/r/hN8iQ7/1

如果您的域还包含具有多个扩展名的域,则会出现问题。即domain.co.uk。您需要专门对其进行处理(命名),因为很难概括区分这些项目的方法。

^(?:https?:\/\/)?[^\/\s]*?\.([^.\s\/]*\.(?:co\.uk|[^.\s\/]*))(?:$|\/.*) - 添加了.co.uk选项。 https://regex101.com/r/hN8iQ7/2

yourregex.Replace(yourstring, "$1")可能会满足您的需求。