在 postgres 中匹配 regexp_replace 中的 2 个条件
Matching 2 conditions in regexp_replace in postgres
我需要帮助使我的正则表达式语法在 Postgres 中正确 regexp_replace:
我的字符串:
1ABC 2ABC 3DEF 4DEF
我的2个Match/Replace条件是:
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))',';','g' );
我的 'Replace' 实际上是匹配文字后的 'Insert'。
我似乎无法在不破坏整个事物的情况下找到第二个条件的模式。这甚至可以在 1 条语句中实现吗?
SELECT regexp_replace('1ABC 2ABC 3DEF 4DEF', '((\w*[^2]A|C)|(\w*[^4]D|F))',';','g');
结果:1A;BC; 2ABC; 3D;EF; 4DEF;
我需要帮助使我的正则表达式语法在 Postgres 中正确 regexp_replace: 我的字符串:
1ABC 2ABC 3DEF 4DEF
我的2个Match/Replace条件是:
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))',';','g' );
我的 'Replace' 实际上是匹配文字后的 'Insert'。
我似乎无法在不破坏整个事物的情况下找到第二个条件的模式。这甚至可以在 1 条语句中实现吗?
SELECT regexp_replace('1ABC 2ABC 3DEF 4DEF', '((\w*[^2]A|C)|(\w*[^4]D|F))',';','g');
结果:1A;BC; 2ABC; 3D;EF; 4DEF;