RegEx - URL 文本字符串右侧的 Return 模式

RegEx - Return pattern to the right of a text string for URL

我正在寻找 return 使用 RegEx 的特定文本集右侧的 URL 字符串:

URL:

www.websitename/countrycode/websitename/contact/thank-you/whitepaper/countrycode/whitepapername.pdf 

我想要什么 return:

/whitepapername.pdf

我试过使用 ^\w+"countrycode"(\w.*) 但匹配无法识别 countrycode

在 Google Data Studio 中,我想创建一个新字段以使用 REGEX_REPLACE 函数删除 URL 的开头。

理想情况下使用:

REGEX_REPLACE(Page,......)

您可以使用捕获组并替换为组 1。您可以按字面匹配 /countrycode 或使用模式匹配 2 次字符 a-z,中间有下划线,例如 /[a-z]{2}_[a-z]{2}

在替换中使用第1组\1

^.*/countrycode(/[^/]+\.\w+)$

Regex demo

或使用评论中的国家代码模式:

^.*/[a-z]{2}_[a-z]{2}(/[^/]+\.\w+)$

Regex demo

零件中的第二个图案

  • ^ 字符串开头
  • .*/ 匹配直到最后一次出现正斜杠
  • [a-z]{2}_[a-z]{2} 匹配国家代码部分,2个2个字符a-z之间的下划线
  • ( 捕获 组 1
    • /[^/]+ 匹配一个正斜杠,然后使用 negated character class
    • 匹配除 / 以外任何字符出现 1 次以上
    • \.\w+ 匹配一个点和 1+ 个单词字符
  • ) 关闭群组
  • $ 字符串结束

下面的 REGEXP_REPLACE 函数可以解决问题,捕获最后一个 countrycode 之后的所有 (.*) 字符,其中 Page 代表相应的字段:

REGEXP_REPLACE(Page, ".*(countrycode)(.*)$", "\2")

或者 - 将 的 RegEx 改编为 Google Data Studio:

REGEXP_REPLACE(Page, "^.*/countrycode(/[^/]+\.\w+)$", "\1")

Google Data Studio Report还有一张GIF来详细说明: