如何删除 Snowflake 中的 Unicode 字符?

How to remove Unicode characters in Snowflake?

我正在尝试清理雪花 table 中的数据,我看到很多 unicode 字符,例如 \U0028。 我写了以下内容,但不确定如何删除 Unicode。

Select
REGEXP_REPLACE(
           REGEXP_REPLACE(
               REGEXP_REPLACE(lower('MON \U0028 POP STORE'),
                              '[/-_.,&#\'"?~;/+|:|/|]'),
               '( co|inc|pllc|llc|ltd|plc|corp|pc|corporation|incorporated)$'),
           '\s+',
           ' ') ;

正则表达式是否可行,或者我需要使用 REPLACE(数据, '\u0028', '\u0306')。任何帮助将不胜感激。

我的数据如下:

VITAMIN \U0026 SUPPLEMENTS STORE

我猜在这里我们可能只想使用一个简单的表达式来查找我们的 unicode,例如:

\U.+?(\s)

并将其替换为空字符串。

Demo

根据这些实体在现实生活中的情况,有两种可能的解决方案。

如果这些是字符十六进制实体并且 \u0026 实际上是一个 & 字符,在控制台中显示为 \u0026,您可能不需要采取任何操作,因为没关系。

如果这些是文字 子字符串,您可以从文本中删除,您可以使用

REGEXP_REPLACE( input, '\s*\\U\d{4}', '' )

this regex demo and the regex graph:

详情

  • \s* - 0+ 个空格
  • \ - 反斜杠
  • U - 一个 U 字符
  • \d{4} - 四位数。

请注意,在字符串文字中,每个反斜杠必须转义两次,因为 \ 在字符串中用于形成字符串转义序列,如 \n(换行符)、\t(制表符)等。参见 Escape Characters and Caveats.