在 Google 个工作表中提取没有域扩展名的域名

Extract domain name with no domain extension in Google Sheets

我试图仅从 Google 表格中的一个单元格中提取域名。单元格可以有 .com.co.uk 扩展名。

它们总是显示为带有 wwwhttps:// 的裸域。

A 列 将包含一个随机 URL 列表,这些 URL 将显示为 aol.comamazon.co.uk.

我尝试了以下和许多变体,我认为这本质上是 "remove everything BEFORE the dot" 并且正则表达式实际上使用点来履行其职责。因此,这可能是导致潜在冲突的原因。

=REGEXEXTRACT(A4, "(.+).")

结果最终将通过管道传输到检查公司名称的 QUERY。

=query(Companies!A2:F,"select A where F contains '"&A2&"'")

由于字符串末尾可能只有 .com.co.uk,因此您可以使用

=REGEXEXTRACT(A4, "^(.+)\.(?:co\.uk|com)$")

参见regex demo

此外,您可以在最后删除它们

=REGEXREPLACE(A4, "\.(?:co\.uk|com)$", "")

another regex demo

您还可以考虑更通用的模式,例如

=REGEXEXTRACT(A4, "^(.+?)(?:\.co)?\.[^.]+$")
=REGEXREPLACE(A4, "(?:\.co)?\.[^.]+$", "")

图案详情

  • ^ - 字符串开头
  • (.+) - 1 个或多个除换行字符外的字符,尽可能多
  • (.+?) - 除换行符外的 1 个或多个字符,尽可能少(在更通用的模式中需要,因为后续模式是可选的)
  • \.(?:co\.uk|com)$ - . 然后在字符串末尾 co.ukcom
  • (?:\.co)?\.[^.]+$ - 一个可选的 .co 字符序列,然后是 . 和除 . 之外的 1 个或多个字符,直到字符串末尾。