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

Redshift中替换非数字间点为逗号的正则适配问题求助

解决方案

Redshift采用POSIX标准的正则表达式实现,与PostgreSQL的正则处理逻辑存在差异,你需要调整正则表达式的写法:

使用以下查询语句:

SELECT 
  full_name,
  REGEXP_REPLACE(full_name, '([^0-9])\.([^0-9])', '\1,\2', 'g') as full_name_new
FROM your_table_name;

说明:

  • [^0-9]:明确匹配非数字字符,替代原表达式中\D的写法(Redshift对\D的支持存在兼容性问题,用[^0-9]更可靠)
  • ([^0-9])\.([^0-9]):精准捕获点号前后的非数字字符,确保只替换位于非数字之间的目标点
  • 'g':全局替换标志,会替换字符串中所有符合条件的点(若存在多个匹配场景)

测试你的样本数据后,会得到预期结果:

full_name                                      full_name_new
LISADOR. COMPRIMIDO (16UN)                     LISADOR, COMPRIMIDO (16UN)
ALOPURINOL 1.0MG. COMPRIMIDO (30UN)            ALOPURINOL 1.0MG, COMPRIMIDO (30UN)
RILAN 40MG/ML. SOLUCAO NASAL (1UN DE 13ML)     RILAN 40MG/ML, SOLUCAO NASAL (1UN DE 13ML)
DORENE 1.0MG. CAPSULA (30UN)                   DORENE 1.0MG, CAPSULA (30UN)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:12:35