如何从hive文本中删除非Ascii字符(非键盘特殊字符)



我想从我的文本中删除非Ascii字符并将其替换为" .

我有一些无效的字符在我的表,我试图删除。但是我遇到了一个问题。

的例子:

123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt
预期输出:

123Abh street

现在我使用

regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt','[^[:print:]],'')

但这是不工作,有什么建议吗?

可以使用

regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt', '[^\x{0000}-\x7E]+', '')

,

  • [^-匹配除。之外的任何字符的否定字符类的开始
    • x{0000}-x7E- ASCII表中NULL~字符的字符数
  • ]+-类结束,匹配一次或多次。

如果我需要删除除空格和连字符以外的所有特殊字符该怎么办?-在这种情况下,您需要使用

regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt', '[^\w\s-]|_', '')

这里,[^ws-]|_+匹配除字母、数字、_、空格和-之外的任何符号,或者下划线(注意w匹配下划线,因此必须通过|(一个替换操作符)添加)。

最新更新