gpt4 book ai didi

javascript - 如何检测 Snowflake VARCHAR 中的表情符号?

转载 作者:行者123 更新时间:2023-12-05 00:38:06 25 4
gpt4 key购买 nike

我有一个 1B 行的聊天消息表,其中包含一个用于原始消息文本的最大 VARCHAR 列。我如何能 -

  • 仅选择包含 1 个或多个表情符号字符的行
  • 有效过滤掉没有表情符号的行(如果需要提高性能)
  • 最佳答案

    结合 Lukasz 和 Greg 共享的知识,再加上发现一个额外的隐藏 Angular 色,我可以提出这个解决方案:

  • 1 个检测表情符号存在的 JS UDF。
  • 1 个 JS UDF,检测字符串是否只是表情符号。

  • create or replace function has_emoji(X text)
    returns boolean
    language javascript
    as $$
    return /\p{Extended_Pictographic}/u.test(X);
    $$;

    create or replace function only_emoji(X text)
    returns boolean
    language javascript
    as $$
    return /^[\p{Extended_Pictographic}\p{Emoji_Component}]+$/u.test(X);
    $$;
    sample 用途:
    with data as (
    select $1 t
    from values('❄️'),('❄️ is the data ☁️'),('no emoji')
    )

    select *, has_emoji(t), only_emoji(t)
    from data
    ;
    enter image description here
    --
    一些研究:
  • '❄️'.replace(/\p{Extended_Pictographic}/ug, '')返回 ''
  • 但是 '❄️'.replace(/\p{Extended_Pictographic}/ug, '')不等于 ''
  • 原来还有隐藏的字符需要替换,匹配Emoji_Component

  • enter image description here

    关于javascript - 如何检测 Snowflake VARCHAR 中的表情符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69931949/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com