Re: Regex Replace with 2 conditions

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Regex Replace with 2 conditions
Дата
Msg-id 30731.1517841786@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Regex Replace with 2 conditions  (Denisa Cirstescu <Denisa.Cirstescu@tangoe.com>)
Ответы RE: Regex Replace with 2 conditions  (Denisa Cirstescu <Denisa.Cirstescu@tangoe.com>)
Список pgsql-general
Denisa Cirstescu <Denisa.Cirstescu@tangoe.com> writes:
> Is there a way to specify 2 conditions in regexp_replace?
> I need an SQL function that eliminates all ASCII characters from 1-255 that are not A-Z, a-z, 0-9, and special
characters% and _  so something like: 
> SELECT regexp_replace(p_string, E'[' || CHR(1) || '-' || CHR(255) || '&&[^A-Za-z0-9%_]]', '', 'g'));
> But this syntax is not really working.

Nope, because there's no && operator in regexes.

But I think you could get what you want by using lookahead or lookbehind
to combine additional condition(s) with a basic character-class pattern.
Something like

    (?=[\001-\377])[^A-Za-z0-9%_]

            regards, tom lane


В списке pgsql-general по дате отправления:

Предыдущее
От: Francisco Olarte
Дата:
Сообщение: Re: Regex Replace with 2 conditions
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Regex Replace with 2 conditions