【问题标题】: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/ |
输出:
如何起草一个允许我提取它的表达式?
【问题讨论】:
标签:
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