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

ClickHouse中如何将数组内每个单词的重音字符替换为非重音字符?

问题原因

你使用的replaceRegexpAll函数不支持传入数组作为匹配参数,该函数第二个参数要求是单个正则表达式,同时原有写法未覆盖大写重音字符(比如示例中的Á),因此无法得到预期结果。

解决方案

直接使用ClickHouse内置的translate函数实现单字符的一一映射替换,该方案效率远高于正则替换,完美适配你的需求:

SELECT arrayMap(
    x -> lower(
            translate(x, 'áéíóúÁÉÍÓÚ', 'aeiouaeiou')
        ),
    ['camión', 'elástico', 'Árbol']
) AS word

运行后返回结果就是你需要的['camion', 'elastico', 'arbol']。

补充说明

  • translate会按字符位置做一一对应替换,第一个参数字符串中出现在第二个参数里的字符,都会被替换为第三个参数对应位置的字符
  • 示例中加了lower函数是为了统一输出为小写,和你的预期结果对齐。如果不需要转小写,仅要去除重音,调整为translate(x, 'áéíóúÁÉÍÓÚ', 'aeiouAEIOU')即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:33:02