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

如何在SnowFlake中拆分帕斯卡命名格式的地址字段?

解决方案

问题根因

你当前使用的正则会在所有大写字母前插入空格,同时缺少下划线替换逻辑,是输出不符合预期的核心原因:

  • 遇到45ThSt时,会在T(Th的首字母)和S(St的首字母)前都加空格,导致输出45 Th St
  • 遇到NE17ThSt时,会在N、E、T、S前加空格,不符合你要保留NE、17Th作为整体的需求
  • 未处理地址中的下划线,导致下划线保留在输出中

修改后的UDF代码

调整逻辑:先替换所有下划线为空格,再仅在三类需要拆分的场景前插入空格:小写字母后接大写字母、数字后接大写字母、大写字母后接数字

CREATE OR REPLACE FUNCTION Split_On_Upper_Case(s string)
RETURNS string
LANGUAGE JAVASCRIPT 
AS $$
function Split_On_Upper_Case(str){
  // 替换下划线为空格
  str = str.replace(/_/g, ' ');
  // 按规则插入空格
  str = str.replace(/(?<=[a-z])(?=[A-Z])|(?<=[0-9])(?=[A-Z])|(?<=[A-Z])(?=[0-9])/g, ' ');
  return str;
}
return Split_On_Upper_Case(S);
$$;

测试验证

  • 输入'123_45ThSt',输出为'123 45Th St',符合预期
  • 输入'12345NE17ThSt',输出为'12345 NE 17Th St',符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:24:03