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

在Snowflake中替换字符串内ASCII码超出32-126范围的字符为!

在Snowflake中替换非可打印ASCII字符为"!"的解决方案

可以使用Snowflake的REGEXP_REPLACE函数实现需求,通过正则表达式匹配所有不在ASCII 32(空格)到ASCII 126(~)范围内的字符,将其替换为"!"。

核心SQL语句

SELECT REGEXP_REPLACE(your_column_name, '[^ -~]', '!') AS cleaned_string
FROM your_table_name;

正则表达式说明

  • [^ -~]:匹配所有不在空格(ASCII 32)到波浪号(ASCII 126)范围内的字符,正好覆盖你要求的32-126可打印ASCII字符范围。
  • 替换部分指定为"!",所有匹配到的非目标范围字符都会被替换。

示例验证

处理包含控制字符的字符串:

-- 原字符串包含ASCII 1(控制字符)和正常字符
SELECT REGEXP_REPLACE('Hello\x01World!', '[^ -~]', '!') AS cleaned_str;

执行结果:Hello!World!

处理包含扩展ASCII字符的情况:

SELECT REGEXP_REPLACE('Hëllo', '[^ -~]', '!') AS cleaned_str;

执行结果:H!llo

补充说明

如果字符串包含多字节字符(比如中文、emoji),这些字符不属于单字节ASCII范围,也会被替换为"!",符合基于ASCII码检测的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:29:54