Прежде чем приведу суть в виде примеров, прошу НЕ придерайтесь к смыслу, только к механике непосредственно функции.
Итак примеры.
Как-бы вырезаем теги (не придерайтесь к сути, пожалуйста):
SELECT regexp_replace('foo <a>123</a> bar <a>123</a> baz', '<a>.*?</a>', '', 'g');
-- foo bar baz
Всё ок, как и ожидалось.
Чуть усложняем:
SELECT regexp_replace('foo <a X>123</a> bar <a Y>123</a> baz', '<a [XY]>.*?</a>', '', 'g');
-- foo bar baz
Всё ок, как и ожидалось.
Меняем квадратные скобки на круглые:
SELECT regexp_replace('foo <a X>123</a> bar <a Y>123</a> baz', '<a (X|Y)>.*?</a>', '', 'g');
-- foo baz
Почему bar съелся?
Версия посгреса: 12. Документация на функцию тут:
https://postgrespro.ru/docs/postgrespro/12/functio...