Удалите скобки из столбца таблицы postgres, но оставьте в них слова

У меня есть столбец заголовка, который содержит несколько слов в скобках. Я хотел бы удалить скобки, но сохранить слова, которые в настоящее время находятся внутри них, используя regexp_replace. Я пробовал это, но, похоже, это не сработало. В колонке еще есть скобки.

UPDATE test_table SET title = regexp_replace(title, '()', '', 'g');

person neilH    schedule 07.05.2016    source источник
comment
() является допустимым синтаксисом регулярного выражения. Вместо этого попробуйте '(|)'.   -  person Jim Nasby    schedule 08.05.2016


Ответы (2)


Не проверено, но предполагается, что это обычный синтаксис регулярного выражения.

UPDATE test_table SET title = regexp_replace(title, '\(|\)', '', 'g');

or

UPDATE test_table SET title = regexp_replace(title, '[()]', '', 'g');

Помещение () в [] означает поиск каждого отдельного символа. Использование | означает «или», но в этом случае вам нужно \ экранировать () .

person C14L    schedule 07.05.2016
comment
Хороший, хороший ответ. Я использовал второй вариант, сработало отлично. - person neilH; 08.05.2016

Вы также можете использовать для этого функцию BTRIM. Пример:

BTRIM(title,'[]') as "title"

Ваше здоровье!

person Jose Lugo    schedule 13.01.2021