用于提取域的 re2 正则表达式

re2 Regex for extracting domain

在 Google 表格中,我试图从 URL 中提取域名,这些 URL 可能有(也可能没有)http://https:// 和一个子域(无论是 www. 或类似 mail. 的其他东西)。例如:

Google Sheets 使用 the re2 syntax 作为正则表达式。到目前为止我能做的最好的是: http[s]?://www.([[:alpha:]]*.[[:alpha:]]*)

此正则表达式不适用于我遇到的三个主要场景:

谨慎使用点字符 . 可以帮助您获得所需的内容。

这里的匹配是利用两个点 \. 的存在完成的,并用点 .:

收集组内的所有内容
([^\.]+\.)?(.*\.[^\.]+)
  • 第 1 组将匹配前缀
  • 组 2 将匹配域

或者如果您愿意,您可以使用以下方法专门检测后缀和域名:

([^\.]+\.)?(.*)\.([^\.]+)
  • 第 1 组将匹配前缀
  • 第2组将匹配域名
  • 第 3 组将匹配后缀

此正则表达式是否符合您要查找的内容?

使用:

=INDEX(IFERROR(REGEXEXTRACT(A1:A, "^(?:https?:\/\/)?(?:ftp:\/\/)?(?:www\.)?([^\/]+)")))