В PostgreSQL для извлечения текста между скобками можно использовать регулярные выражения с функцией regexp_replace, regexp_matches или substring. Вот пример использования этих методов.

1. Пример использования regexp_matches

Если имеется строка и необходимо получить текст между первой парой круглых скобок, можно использовать функцию regexp_matches следующим образом:

SELECT regexp_matches('Текст с (нужным текстом) внутри скобок', '\((.*?)\)')

Этот запрос вернет массив, содержащий текст: {"нужным текстом"}

2. Пример использования substring

Другой способ - использовать substring с регулярным выражением:

SELECT substring('Текст с (нужным текстом) внутри скобок' FROM '\((.*?)\)')

Этот запрос также вернет: нужным текстом

3. Пример использования regexp_replace

Если необходимо просто удалить текст вне скобок и оставить только то, что внутри, можно использовать regexp_replace:

SELECT regexp_replace('Текст с (нужным текстом) внутри скобок', '.*\((.*?)\).*', '\1')

Этот запрос вернет: нужным текстом.

4. Поддержка нескольких пар скобок

Если есть несколько пар скобок и необходимо извлечь все тексты между ними, то можно использовать regexp_matches с g флагом (глобальный поиск):

SELECT regexp_matches('Текст с (первый текст) и (второй текст) внутри скобок', '\((.*?)\)', 'g');

Этот запрос вернет массив с каждым текстом между скобками:

{"первый текст"}

{"второй текст"}