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

如何使用regexp_replace将分号分隔的字符串拆分为两列?

可以用regexp_replace实现这个转换需求

核心思路是通过正则捕获组拆分分号分隔的内容,再替换成带空格分隔的格式,具体分两种场景处理:

  1. 表头替换
    直接把Fullname替换成目标表头Firstname Lastname,用基础的正则匹配替换就能完成,比如:
regexp_replace('Fullname', '^.*$', 'Firstname      Lastname')
  1. 数据行替换
    针对每一行分号分隔的姓名,用正则捕获分号前后的名和姓,再把分号替换成足够的空格(或根据需要动态填充空格实现精确对齐):
  • 若只是近似对齐,直接替换分号为固定数量的空格,比如在文本编辑器中用正则查找^(.*?);(.*)$,替换为$1 $2(手动调整空格数让列对齐);
  • 若要精确对齐,在支持函数的环境(比如PostgreSQL)中,可以结合长度计算填充空格,示例:
regexp_replace('Elen;Morales', '(.*?);(.*)', '\1' || repeat(' ', 12 - length('\1')) || '\2')

这里通过repeat函数计算需要填充的空格数,让Firstname列固定占12个字符,实现严格对齐。

总之,不管是简单的近似排版还是精确对齐,都可以通过regexp_replace配合正则捕获组来完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:05:32