【问题标题】:Google Sheets Formula for Extracting Domain From Website?用于从网站中提取域的 Google 表格公式?
【发布时间】:2019-12-18 17:30:18
【问题描述】:
REGEXEXTRACT(A1:A,"(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$)")

试图从网站中提取域名

如果链接是这样的,上面的公式对我有用:https://walmart.com/careers

但是,如果它已经是域 (walmart.com) 或者是 www.walmart.com/careers,则它不起作用

是否有更彻底的公式可以处理这些极端情况?

【问题讨论】:

  • 试试\b(https?:\/{2})?(\w+(-\w+)*\.)+\w+(-\w+)*\S+

标签: regex url google-sheets google-sheets-formula array-formulas


【解决方案1】:

尝试:

=ARRAYFORMULA(INDEX(SPLIT(REGEXREPLACE(A8:A12, "https?://www.|https?://|www.", ), "/"),,1))


更新 1:

=ARRAYFORMULA(IFNA(REGEXEXTRACT(INDEX(SPLIT(
 REGEXREPLACE(A8:A14, "https?://www.|https?://|www.", ), "/"),,1), 
 "\.(.+\..+)"), INDEX(SPLIT(
 REGEXREPLACE(A8:A14, "https?://www.|https?://|www.", ), "/"),,1)))


更新 2:

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

【讨论】:

  • 这很好,除非它只有在 .com 之后有 / 时才有效,(所以如果它只是 walmart.com 它不起作用)无论如何要在 RegEx 中解释这一点?我知道它是 \z 或字符串结尾的东西,但我的正则表达式知识是不确定的,试图弄清楚
  • 如果域之前有某些东西也不起作用,即careers.walmart.com/
  • @pilat =INDEX(IFERROR(REGEXEXTRACT(A1:A, "^(?:https?:\/\/)?(?:www\.)?([^\/]+)")))
猜你喜欢
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多