2015-05-14 1 views
4

У меня есть сценарий в postgres, где мне нужно собрать все записи между несколькими наборами квадратных скобок.Postgresql regex для возврата нескольких значений

Следующий пример был бы то, что я ожидал бы, чтобы захватить это:

SELECT (regexp_matches('Hello [World] How [Are] You','\[(.*?)\]')) 

Но это просто возвращает

{World} 

игнорируя второй секции [А].

В регулярном регулярном выражении это, похоже, работает, поэтому я не уверен, почему он здесь не работает.

В идеале, я хотел бы вернуть результат как текстовую строку csv. , например.

World,Are 

, но я не могу найти правильный запрос для этого.

Любой ввод оценивается. Благодарю.

ответ

3

Вы должны использовать «G» пометка

SELECT (regexp_matches('Hello [World] How [Are] You','\[(.*?)\]','g')) 

флаг «г» указывает на то, что регулярное выражение должно быть испытано против всех возможных совпадений в строке.

+1

Perfect. Приветствие сэр – JamesA

Смежные вопросы