PostgreSQL 11中如何批量替换字符串里的|及后续首字符?
PostgreSQL 11全局替换
|及后续首个字符的正确SQL 你的问题出在regexp_replace默认只替换第一个匹配项,需要添加全局替换标志才能处理所有符合规则的子串。
正确的SQL语句如下:
select regexp_replace('|aDerivatives :|bprinciples and practice /|cRangarajan K. Sundaram, |fSanjiv R. Das.', '\|[A-Za-z]', '', 'g');
关键说明:
- 第四个参数
'g'是PostgreSQL中regexp_replace的全局替换标志,指定后会替换字符串中所有匹配\|[A-Za-z]模式的子串,而不是仅第一个。 - 你的原始语句未添加该标志,因此只替换了第一个出现的
|a,其余|b、|c、|f均未被处理。
执行上述语句后,输出结果将符合你的预期:
"Derivatives :principles and practice /Rangarajan K. Sundaram, Sanjiv R. Das."
内容的提问来源于stack exchange,提问作者franco
相关产品推荐
相关产品推荐

