доза regexp_replace не может использовать multi regexp (|) в postgresql? Иначе что мне делать? - PullRequest
0 голосов
/ 02 августа 2020
select regexp_replace('"Tho"mas""', '"$|^"', '');

получил Tho"mas"", но хочу Tho"mas"



однако ...

select regexp_split_to_array('"Tho"mas""', '"$|^"')

получил {"","Tho\"mas",""}, это не так так плохо. тогда почему эти два регулярных выражения работают по-разному?

1 Ответ

0 голосов
/ 02 августа 2020

Используйте модификатор global (g), чтобы обрабатывались все совпадения, а не только первое совпадение:

SELECT regexp_replace('"Tho"mas""', '"$|^"', '', 'g');

regexp_split_to_array() уже соответствует глобально по своей природе, поскольку предполагается, что он разделяет все совпадения строка.

...