You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除数据库表字符串字段中XML的所有空行

移除XML字符串中的所有空行

要解决这个问题,你需要调整正则表达式并启用全局替换,确保所有空行都被移除。

正确解决方案

使用以下SQL语句:

SELECT regexp_replace(record, '(?m)^\\s*\\r?\\n', '', 'g') AS record
FROM MyTable;

原方案问题分析

你之前的语句有两个关键问题:

  1. 未启用全局替换:PostgreSQL的regexp_replace默认只替换第一个匹配项,必须添加第四个参数'g'才能全局替换所有符合条件的空行。
  2. 正则逻辑冗余:(?!(\s*\r?\n))这个负前瞻限制了匹配范围,导致只有后面不跟着空行的空行才会被替换,漏掉了末尾的空行。

另一种可选方案

如果你的XML中可能存在连续多个空行,也可以通过合并连续换行来实现需求:

SELECT regexp_replace(record, '\\r?\\n\\s*\\r?\\n', '\\n', 'g') AS record
FROM MyTable;

这个语句会将所有连续的换行(中间可包含空白字符)替换为单个换行,同样能达到移除空行的效果。

内容的提问来源于stack exchange,提问作者Abhishek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:47:08