我需要帮助在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
所以我期待得到:
"1A;BC; 2ABC; 3D;EF; 4DEF;"
我对条件1的部分替换是:
SELECT regexp_replace('1ABC 2ABC 3DEF 4DEF', '((?<!2)(A|C))','\1;','g' );
我的'替换'实际上是匹配的文字之后的'插入'。
我似乎无法在不破坏整个事情的情况下找到第二个条件的模式。这是否有可能在1个声明中?
答案 0 :(得分:0)
SELECT regexp_replace('1ABC 2ABC 3DEF 4DEF', '((\w*[^2]A|C)|(\w*[^4]D|F))','\1;','g');
结果:1A;BC; 2ABC; 3D;EF; 4DEF;