Я хочу использовать regex_replace для удаления фраз, существующих в одном (или обоих) из двух столбцов. Итак, из названия продукта я хочу удалить цвет и бренд, которые существуют в столбцах цвета или бренда. У меня есть такое регулярное выражение, но интересно, можно ли сделать это без вложенности?
regexp_replace(regexp_replace(lower(product_name),
lower(Manufacturer_Brand_Name), ''),lower(Colour), '')
так что вместо вышеперечисленного есть что-то вроде
regexp_replace(lower(product_name),
(lower(Manufacturer_Brand_Name)|lower(Colour)), '')
Но, очевидно, вы должны поместить его в кавычки, чтобы читать как регулярное выражение, поэтому я на самом деле не ввожу имена столбцов.
regexp_replace(lower(product_name),
'(lower(Manufacturer_Brand_Name)|lower(Colour))', '')
Ожидаемый результат: Dell Laptop Blue — просто ноутбук.





Вы должны использовать
REGEXP_REPLACE(product_name, CONCAT(r'(?i)', Manufacturer_Brand_Name, '|', Colour), '')
Например
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'Dell Laptop Blue' product_name, 'Dell' Manufacturer_Brand_Name, 'blue' Colour
)
SELECT
REGEXP_REPLACE(product_name, CONCAT(r'(?i)', Manufacturer_Brand_Name, '|', Colour), '')
FROM `project.dataset.table`
с результатом
Row f0_
1 Laptop