【问题标题】:Clean and extract Subdomains & Domains from URLs using Regex Notepad++使用 Regex Notepad++ 从 URL 中清理和提取子域和域
【发布时间】:2015-11-14 03:55:02
【问题描述】:

这是一个简单的文本文件。

网址:

  • 可以有 https:// 或 http://
  • 消除和尾随 url/ 文件路径
  • 仅提取域和/或子域

我有 Notepad++ 和 EditPlus

愿意接受其他建议吗?

例子:

https://appspace.com

http://appspace.com/

http://ayurfit.ning.com/main/authorization/signIn

http://bangalore.olx.in/login.php

http://birthdayshoes.com/forum/index.php

http://birthdayshoes.com/forum/register/

http://forums.virtualbox.org/ucp.php

尝试:

/(?!.{253})((?!-)[A-Za-z0-9-]{1,63}(?<!-)\.){1,126}+[A-Za-z]{2,6}/ 
^(?:https?://)?([^/.]+(?=\.)|)(\.?[^/.]+\.[^/]+)/?(.+|)$

https://regex101.com/r/hZ4cL4/4

在其他机器上尝试了很多作为 Regex101 的示例

也发现了这个小金块。一旦我理解它,我会发布它的不同之处。

Regular Expression - Extract subdomain & domain

【问题讨论】:

  • 请发表您的尝试。
  • 会这样做。它在另一台机器上。耽误。复制粘贴我的尝试。
  • /(?!.{253})((?!-)[A-Za-z0-9-]{1,63}(?
  • 你试过了吗,比如说\b[\w-]+(?:\.[\w-]+)+\b

标签: regex url notepad++ subdomain


【解决方案1】:

对于以protocol开头的链接,可以使用如下正则:

(?<=://)[\w-]+(?:\.[\w-]+)+\b

demo

(?&lt;=://)look-behind 确保在我们要匹配的值之前有 ://,并且整个匹配的文本由 1 个或多个单词字符或连字符 ([\w-]+) 的序列组成,它们最终被分开带句号。

【讨论】:

  • 谢谢。就一件事。与另一个^(?:https?://)?([^/.]+(?=\.)|)(\.?[^/.]+\.[^/]+)/?(.+|)$ 一起,我能够使用\1 \2 进行查找替换。在这里,我不能用 \0、\1 或 \2 拉动。我错过了什么?
  • 检查这个:^(?:https?://)?([^/.\n]+(?=\.))?(\.?[^/.\n]+\.[^/\n]+)/?(.*)$。替换为\1\2$1$2
  • 您的那份文件中还有什么需要匹配的吗? :)
  • 我对此表示怀疑。今天刚刚在几个数据日志上测试它。我觉得应该是成功的。完成后,我会将您的答案标记为已接受。我怀疑会有更多的错误。再次感谢。结束后你会看到我的确认。
  • 也发现了这个小金块stackoverflow.com/questions/25703360/…
【解决方案2】:

您可以简单地提取两个 . 之间的任何内容。 您可以对 http(s) 使用lookbehinds,对文件路径使用lookahead 微调您的结果。

【讨论】:

    猜你喜欢
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 2023-02-10
    • 1970-01-01
    • 2019-09-24
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多