Регулярное выражение Google Data Studio Заменить формулу — удалить все символы после ? и #

У меня есть база данных в Google Data Studio

Я пытаюсь создать настраиваемое поле и заменить все символы, идущие после # и? петь (конечно их тоже). Но эта формула - не знаю почему - не работает

я пробовал этот

REGEXP_REPLACE(Landing Page,'(#|\?)(.*)','')

Не могли бы вы помочь?


person MattMatt    schedule 19.01.2020    source источник
comment
Если вы хотите сохранить ? или #, вы должны использовать группу 1 в замене \\1 Шаблон может быть ([#?]).+   -  person The fourth bird    schedule 19.01.2020
comment
Или, если вы имеете в виду разрывы строк, используйте REGEXP_REPLACE(Landing Page,'(?s)[#?].*','')   -  person Wiktor Stribiżew    schedule 19.01.2020


Ответы (1)


Шаблон, который вы пробовали, (#|\?)(.*) захватывает либо #, либо ?, используя группу захвата с чередованием |, за которым следует захват 0+ раз любого символа в другой группе захвата.

Но в замене указана пустая строка, удаляющая все совпадающее.


Вы можете использовать класс персонажей ([#?]) в группе захвата, чтобы захватить одного из перечисленных.

Чтобы выполнить замену только там, где есть что-то после совпадения, вы можете сопоставить 1+ раз любой символ, кроме новой строки, используя .+

Чтобы удалить то, что идет после совпадающего символа, вы можете обратиться к группе захвата, используя \\1, чтобы сохранить # или ? и удалить то, что соответствует впоследствии.

Шаблон может выглядеть так:

([#?]).+
person The fourth bird    schedule 19.01.2020