RegEx - шаблон возврата справа от текстовой строки для URL - PullRequest
2 голосов
/ 16 июня 2020

Я хочу вернуть строку URL-адреса справа от указанного c набора текста, используя RegEx:

URL:

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

То, что я хотел бы просто return:

/whitepapername.pdf

Я пробовал использовать ^\w+"countrycode"(\w.*), но совпадение не распознает countrycode.

В Google Data Studio я хочу создать новое поле для удаления начало URL-адреса с помощью функции REGEX_REPLACE.

В идеале:

REGEX_REPLACE(Page,......)

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Функция REGEXP_REPLACE ниже делает трюк, захватывая все (.*) символы после последнего countrycode, где Page представляет соответствующее поле:

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

Альтернативно - Адаптация RegEx с помощью Четвертая птичка в Google Data Studio:

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

Отчет Google Data Studio , а также GIF для разработки:

1 голос
/ 16 июня 2020

Вы можете использовать группу захвата и заменить ее на группу 1. Вы можете сопоставить /countrycode буквально или использовать шаблон, чтобы сопоставить 2 раза символы az с подчеркиванием между ними, например /[a-z]{2}_[a-z]{2}

В замене используйте группу 1 \\1

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

Regex demo

Или используйте шаблон кода страны из комментариев:

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

Regex demo

Второй образец по частям

  • ^ Начало строки
  • .*/ Сопоставление до последнее появление прямого SLA sh
  • [a-z]{2}_[a-z]{2} Соответствует части кода страны, подчеркивание между 2 раза по 2 символа az
  • ( Захват группа 1
    • /[^/]+ Сопоставьте прямой sla sh, затем сопоставьте 1+ вхождений любого символа, кроме /, используя инвертированный класс символов
    • \.\w+ Соответствие символы точки и 1+ слов
  • ) Закрыть группу
  • $ Конец строки
...