You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中用Regex处理URL:去尾补全最后斜杠

解决方案

当然可以用一个嵌套的REGEXREPLACE函数实现这个需求,一步到位处理两种情况:

=REGEXREPLACE(REGEXREPLACE(A1,"\/[^\/]*$",""),"[^\/]$","$0/")

分步解释:

  1. 内层REGEXREPLACE(A1,"\/[^\/]*$",""):

    • 正则\/[^\/]*$的意思是:匹配最后一个斜杠\/,加上斜杠后面所有非斜杠字符直到字符串结尾$
    • 作用:把最后一个斜杠之后的所有内容(包括斜杠本身如果后面没有内容的话)都去掉
    • 示例效果:
      • http://example.com/dp/tt560/?tag=ukos20 → http://example.com/dp/tt560
      • http://example.com/dp/tt560/ → http://example.com/dp/tt560
      • http://example.com/dp/tt560 → http://example.com/dp/tt560
  2. 外层REGEXREPLACE(..., "[^\/]$","$0/"):

    • 正则[^\/]$的意思是:匹配字符串结尾不是斜杠的字符
    • 作用:如果处理后的字符串结尾没有斜杠,就给它加上一个斜杠
    • 示例效果:
      • http://example.com/dp/tt560 → http://example.com/dp/tt560/
      • 已经是http://example.com/(内层处理后变成http://example.com)→ 外层处理后变回http://example.com/

测试你的示例:

  • 原URL:http://example.com/dp/tt560/?tag=ukos20 → 处理后:http://example.com/dp/tt560/
  • 原URL:http://example.com/dp/tt560/ → 处理后:http://example.com/dp/tt560/

如果你想更简洁,也可以用一个正则表达式搞定,不过可读性稍差一点:

=REGEXREPLACE(A1,"^(.*?)(\/.*)?$","$1/")

这个正则的逻辑是:

  • ^(.*?):非贪婪匹配到第一个可以让后续正则匹配的位置(这里会自动匹配到最后一个斜杠之前的完整路径)
  • (\/.*)?:可选匹配斜杠及后面的所有内容
  • 替换为$1/:保留前面匹配到的路径,强制加上结尾斜杠

不过我更推荐第一个嵌套版本,逻辑更清晰,容易理解和调试。

内容的提问来源于stack exchange,提问作者sigur7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:20:52