【问题标题】:How can I extract all characters between the first / and second / using REGEXP_EXTRACT in Google Data Studio?如何在 Google Data Studio 中使用 REGEXP_EXTRACT 提取第一个 / 和第二个 / 之间的所有字符?
【发布时间】:2021-09-27 13:57:44
【问题描述】:

我正在尝试在 Google Data Studio 中使用 REGEXP_EXTRACT 来提取 URL 的一部分。

输入:

URLs
/media/news/royals/meghan-markle-prince-harry-archie-new-photo
/marketplace/deals/best-selling-orthotic-friendly-sneakers/

输出:

URLs
media
marketplace

如何起草一个允许我提取它的表达式?

【问题讨论】:

    标签: regex google-data-studio


    【解决方案1】:

    您可以使用正则表达式和捕获组来查找字符串的开头,1 个斜线,任何不是斜线,然后是斜线。在 Python 中,下面的正则表达式有效。使用 regex101.com 测试您的正则表达式。

    strings = ['/media/news/royals/meghan-markle-prince-harry-archie-new-photo', '/marketplace/deals/best-selling-orthotic-friendly-sneakers/']
    
    for s in strings:
        good_part = re.sub('\A/([^/]*)/.*', r'\1', s)
        print(good_part)
    
    

    打印:

    media
    marketplace
    

    【讨论】:

      【解决方案2】:

      您可以使用以下表达式实现此目的:^/([^/]+)

      它匹配以 / 开头 (^) 的字符串,并在此之后捕获 1 个或多个不是 / 的字符 (([^/]+))。

      例子:

      WITH URLS AS (
        SELECT '/media/news/royals/meghan-markle-prince-harry-archie-new-photo' url
        UNION ALL
        SELECT '/marketplace/deals/best-selling-orthotic-friendly-sneakers/' url
      )
      SELECT url, REGEXP_EXTRACT(url, '^/([^/]+)') path
      FROM URLS
      

      https://support.google.com/datastudio/answer/7050487?hl=en

      【讨论】:

        【解决方案3】:

        可以使用下面的REGEXP_EXTRACTCalculated Field来实现,它提取第一个/和下一个/之间的所有字符(如果没有第二个/,所有字符将被捕获到最后字符串):

        REGEXP_EXTRACT(URLs, "^/([^/]+)")
        

        Editable Google Data Studio Report(内嵌Google Sheets数据源)和一个GIF来详细说明:

        【讨论】:

          猜你喜欢
          • 2021-10-15
          • 1970-01-01
          • 1970-01-01
          • 2020-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多