如何在Snowflake中删除Unicode字符?

时间:2019-06-04 23:45:15

标签: regex snowflake

我正在尝试清除雪花表中的数据,并且看到很多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

2 个答案:

答案 0 :(得分:0)

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

\\U.+?(\s)

,并将其替换为空字符串。

Demo

答案 1 :(得分:0)

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

如果这些是char十六进制实体,并且实际上\u0026是在控制台中显示为&的{​​{1}}字符,那么您可能无需采取任何操作,因为可以。

如果这些是 literal 子字符串,则要从可能使用的文本中删除

\u0026

请参见this regex demoregex graph

enter image description here

详细信息

  • REGEXP_REPLACE( input, '\\s*\\\\U\\d{4}', '' ) -超过0个空格
  • \s*-反斜杠
  • \\-一个U字符
  • U-四位数。

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