解码为希伯来语时不正确的 regex_replace

Posted

技术标签:

【中文标题】解码为希伯来语时不正确的 regex_replace【英文标题】:Incorrect regex_replace while decoding to Hebrew 【发布时间】:2021-06-02 13:58:28 【问题描述】:

下面的代码不起作用,因为我的 regex_replace 没有按应有的方式处理空格。帮助! 创建临时函数 解码(字串)AS(( 选择 如果 (STARTS_WITH(word, ''), safe.code_points_to_STRING(ARRAY( 选择 CAST(值作为 int64) 从 UNNEST(SPLIT(REPLACE(REGEXP_REPLACE(word, '[^a-zA-Z0-9]', ''), '', '0'),';')) 值 在哪里 非值 = '' )), 单词) )); 和 数据作为( 选择 'שבחים לסוקולובסקי, האריס: ידענו שתהיה מלחמה'txt) 选择 ( 选择 STRING_AGG(解码(字),'') 从 UNNEST(SPLIT(txt, ' ')) word ) AS 希伯来语_txt 从 数据;

预期结果:שבחים לסוקולובסקי,האריס:ידענו שתהיה מלחמה

【问题讨论】:

【参考方案1】:

考虑下面

create temp function decode(word string) as ((
  select if(starts_with(word, '&#x'), 
    safe.code_points_to_string(array(
      select ifnull(safe_cast(value as int64), ascii(value))
      from unnest(split(replace(word, '&#', '0'),';')) value
      where not value = ''
    )), 
    word)
));
select (
    select string_agg(decode(word), ' ')
    from unnest(split(txt, ' ')) word
  ) as Hebrew_txt
from data               

如果应用于您问题中的样本数据 - 输出是

【讨论】:

以上是关于解码为希伯来语时不正确的 regex_replace的主要内容,如果未能解决你的问题,请参考以下文章

希伯来语 PayPal 按钮中文本不正确的问题

在屏幕上显示希伯来语文本

尝试使用 regex_replace 提取数字

修复:InvalidAlgorithmError:尝试在 Python 中解码编码的 jwt 令牌时不允许指定的 alg 值

Python中从右到左的语言

使用希伯来语输入进行文本框验证