RegEx - 返回 URL 文本字符串右边的模式。

问题描述 投票:0回答:1

我希望使用RegEx返回特定文本集右边的URL字符串。

URL:

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

我想返回的是:

/whitepapername.pdf

我试过使用 ^\w+"countrycode"(\w.*) 但比赛不认识 countrycode.

在Google Data Studio中,我想创建一个新的字段,使用 REGEX_REPLACE 功能。

最好是使用。

REGEX_REPLACE(Page,......)
regex google-data-studio regexp-replace
1个回答
1
投票

REGEXP_REPLACE 下面的函数就能做到这一点,捕捉到所有的 (.*) 后面的字 countrycode,其中 Page 代表各自的领域。

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

或者 - 通过以下方式对RegEx进行调整 第四只鸟 到谷歌数据工作室。

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

谷歌数据工作室报告 以及GIF来阐述。


1
投票

你可以使用一个捕捉组,然后用组1代替。/countrycode 字面意思或使用模式来匹配2次字符a-z,中间加下划线,如 /[a-z]{2}_[a-z]{2}

在替换使用中 第1组 \\1

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

Regex演示

或者使用注释中的国家代码模式。

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

Regex demo

第二种模式的部分

  • ^ 字符串的开始
  • .*/ 匹配,直到最后一个正向斜线出现。
  • [a-z]{2}_[a-z]{2} 匹配国家代码部分,一个下划线2次2个字符之间的a-z。
  • ( 捕捉 第1组
    • /[^/]+ 匹配一个前斜线,然后匹配1个以上的字符出现,除了 / 使用 否定字类
    • \.\w+ 匹配一个点和1个以上的单词字符
  • ) 紧密型集团
  • $ 字符串的末端
© www.soinside.com 2019 - 2024. All rights reserved.