Необходимо использовать регулярное выражение для извлечения части строки - PullRequest
1 голос
/ 07 июня 2019

Я - нуб regex, пытающийся использовать функцию regexp_extract () в студии данных для извлечения части строки.Не могли бы вы мне помочь?

Мне нужно извлечь часть строки, которая идет после «мая».Все до «мая» одинаково во всех кампаниях.

Я пытался найти решение в Google и убил много времени на regexer.com, но я не могу понять,

Current Campaign Name:                       
Xxxxx_xxxxx_PKN_Trueview_24th MayComedy Movie Fans18-24 
Xxxxx_xxxxx_PKN_Trueview_24th MaySouth Asian Film Fans18-24 
Xxxxx_xxxxx_PKN_Trueview_24th MayCricket Enthusiasts18-24   
Xxxxx_xxxxx_PKN_Trueview_24th MayMotorcycle Enthusiasts18-24    

Expected Campaign Names:
Comedy Movie Fans18-24
South Asian Film Fans18-24
Cricket Enthusiasts18-24
Motorcycle Enthusiasts18-24

РЕДАКТИРОВАТЬ: я пытаюсь использовать это в студии данных в функции REGEXP_EXTRACT(Campaign,"regex_code_here").Я думаю, что приемлемый синтаксис re2.

Ответы [ 3 ]

1 голос
/ 07 июня 2019

Вы можете использовать REGEXP_REPLACE здесь, чтобы удалить все ранее, включая May:

REGEXP_REPLACE(Campaign, '.*May', '')

См. Демонстрационную версию regex :

enter image description here

1 голос
/ 07 июня 2019

Регулярное выражение, которое вам нужно, это:

(?<=May).*$

Проверьте это здесь .

0 голосов
/ 07 июня 2019

Вы можете использовать замену

  • ^.*?May - сопоставить все до первого появления May

  • "$` "- заменить на часть, которая следует за подстрокой Ref

    let arr = ["Xxxxx_xxxxx_PKN_Trueview_24th MayComedy Movie Fans18-24","Xxxxx_xxxxx_PKN_Trueview_24th MaySouth Asian Film Fans18-24","Xxxxx_xxxxx_PKN_Trueview_24th MayCricket Enthusiasts18-24","Xxxxx_xxxxx_PKN_Trueview_24th MayMotorcycle Enthusiasts18-24"]
    
    let op = arr.map(str=> str.replace(/^.*?May/g, "$`"))
    
    console.log(op)
...