【问题标题】:Regex to extract only domain from sub-domains [duplicate]正则表达式仅从子域中提取域[重复]
【发布时间】:2015-09-27 11:47:05
【问题描述】:

我将使用带有

的表达式
Regex.Replace();

用“”替换其余部分。

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

【问题讨论】:

  • 你的问题真的,真的很模糊。编辑它以添加更多细节 - 输入是什么?什么是预期的输出?到目前为止,您尝试过什么?
  • 欢迎来到 StackOverflow。请注意,您的问题的质量与优秀的人如何帮助您密切相关。您的问题(尚未)中的信息太少,无法生成任何有意义的答案。请用更多细节编辑它。看看:How do I ask a good question?
  • /https?:\/\/\w+\.(\w+\.\w+)/ 这可以用于您的输入。

标签: c# .net regex


【解决方案1】:

为了重复 Jens 的评论,我们必须猜测:当出现其他信息时,您的预期输出是什么,例如http://therealzenstar.blogspot.fr/somedata.html。还是blogspot.fr吗?这样的例子需要说明吗?

您说您想用"" 替换“其他所有内容”。 Replace() 将替换与您想要的匹配的所有内容。因此,要将其替换为 "",您需要匹配您不想要的所有内容。有可能,但是,捕获您想要的内容并将所有匹配项替换为更容易1 美元。

假设您始终只需要domain.xx,即使出现更多信息。像这样的东西会起作用:^(?:https?:\/\/)?[^\/\s]*\.([^.\s\/]*\.[^.\s\/]*)(?:$|\/.*),如图所示:https://regex101.com/r/hN8iQ7/1

如果您的域还包括具有多个扩展名的域,则会出现问题。 IE。 domain.co.uk。您需要专门针对它们(命名它们),因为很难概括出一种区分这些项目的方法。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多