Соответствие 2 условиям в regexp_replace в postgres - PullRequest
0 голосов
/ 24 апреля 2018

Мне нужна помощь для получения правильного синтаксиса регулярных выражений в Postgres. Regexp_replace: Моя строка:

1ABC 2ABC 3DEF 4DEF  

Мои 2 условия соответствия / замены:

 Replace: A OR C but not in front of 2
    or
 Replace: D OR F but not in front of 4

Так что я ожидаюget:

"1A;BC; 2ABC; 3D;EF; 4DEF;"

Моя частичная замена для условия 1:

SELECT regexp_replace('1ABC 2ABC 3DEF 4DEF', '((?<!2)(A|C))','\1;','g' );

Мой «Replace» - это действительно «Insert» после соответствующего литерала.

Iпросто не может быть в состоянии найти образец для 2-го условия, не нарушая все это.Возможно ли это даже в 1 заявлении?

1 Ответ

0 голосов
/ 24 апреля 2018

SELECT regexp_replace('1ABC 2ABC 3DEF 4DEF', '((\w*[^2]A|C)|(\w*[^4]D|F))','\1;','g');

Результат: 1A;BC; 2ABC; 3D;EF; 4DEF;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...