我有一个 1B 行的聊天消息表,其中包含一个用于原始消息文本的最大 VARCHAR 列。我如何能 -
最佳答案
结合 Lukasz 和 Greg 共享的知识,再加上发现一个额外的隐藏 Angular 色,我可以提出这个解决方案:
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
;
--
一些研究:
'❄️'.replace(/\p{Extended_Pictographic}/ug, '')
返回 ''
'❄️'.replace(/\p{Extended_Pictographic}/ug, '')
不等于 ''
Emoji_Component
关于javascript - 如何检测 Snowflake VARCHAR 中的表情符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69931949/