【问题标题】:Extract URL minus path in Google Sheets在 Google 表格中提取 URL 减去路径
【发布时间】:2019-10-29 07:10:44
【问题描述】:

与其他一些想将 URL 转换为根域的问题不同(例如,https://www.example.com/fooexample.com)...

我想保留协议和子域(TLD 后面的单斜杠之前的所有内容,如果有的话)。

例如。 https://www.example.com/foohttps://www.example.com

我试过了,结果很奇怪(哈哈)!

=REGEXEXTRACT(C2,"(https?:\/\/(www.)?[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+)\/")

它可以工作,有点,但是看看会发生什么!它会在下一列中插入数据(嗯??)。更疯狂的是,当我删除数据时,它会破坏公式!我做错了什么。

这是我的测试表:https://docs.google.com/spreadsheets/d/1axNd6WZJnGIC8Ydyir58twrIhRhb-p1npNeg3SHfDBg/edit#gid=0

【问题讨论】:

  • 也许尝试为www. 使用非捕获组,例如https?:\/\/(?:www.)?[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+)\/
  • 每个捕获组的一列值,这是预期的。你可以使用=REGEXEXTRACT(C2,"https?://[^/]*")
  • 感谢维克托。你能解释一下这部分正则表达式是如何工作的吗? [^/]* 谢谢!

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


【解决方案1】:

试试这样:

=ARRAYFORMULA(IFNA(REGEXEXTRACT(A2:A, "https?://[^/]*")))

【讨论】:

  • 谢谢@player0。你能为我们解释一下你的公式吗?那太好了。
  • 当然,这个数组公式从 A 列中提取以下模式:以http 开头的字符串,带或不带s s?,后跟://,得到所有内容@987654327 @ 在第一次出现 / 之前是:[^/]。如果在 A 列中没有找到这样的模式,IFNA 将使错误无效
猜你喜欢
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 2014-03-26
  • 1970-01-01
相关资源
最近更新 更多