Regex只从子域中提取域

  • 本文关键字:提取 Regex c# .net regex
  • 更新时间 :
  • 英文 :


我将使用表达式

Regex.Replace();

将其余部分替换为"。

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

只是重复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")可以做你需要的。

最新更新