Как убрать символы Юникода в Снежинке? - PullRequest
2 голосов
/ 05 июня 2019

Я пытаюсь очистить данные в таблице снежинок и вижу много символов юникода, таких как \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( data , '\\u0028', '\\u0306'). Любая помощь будет оценена.

Мои данные выглядят так:

VITAMIN \U0026 SUPPLEMENTS STORE

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Есть два возможных решения в зависимости от того, что эти сущности в реальной жизни.

Если это объекты типа hex hex и \u0026 на самом деле представляет собой символ &, который отображается в консоли как \u0026, вам, вероятно, не нужно предпринимать никаких действий, поскольку все в порядке, как есть.

Если это буквальные подстроки, которые вы хотите удалить из текста, вы можете использовать

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

См. эту демонстрацию регулярных выражений и график регулярных выражений :

enter image description here

Подробнее

  • \s* - 0+ пробелов
  • \\ - обратный слеш
  • U - U char
  • \d{4} - четыре цифры.

Обратите внимание, что внутри строкового литерала каждый обратный слэш должен быть экранирован дважды, так как \ используется в строках для формирования escape-последовательностей строк, таких как \n (новая строка), \t (табуляция) и т. Д. См. Побег персонажей и предостережения .

0 голосов
/ 05 июня 2019

Я предполагаю, что здесь мы можем захотеть найти наши юникоды только с помощью простого выражения, например, такого как:

\\U.+?(\s)

и замените его пустой строкой.

Демо

...