首页 > 解决方案 > 如何从配置单元中的文本中删除非 Ascii 字符(非键盘特殊字符)

问题描述

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

我的表中有一些我要删除的无效字符。但我遇到了其中一个问题。

例子:

123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt

预期输出:

123Abh street

截至目前我正在使用

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

但这不起作用,有什么建议吗?

标签: regexhiveasciihql

解决方案


您可以使用

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

这里,

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

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

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

在这里,[^\w\s-]|_+匹配除字母、数字、_、空格和-或下划线以外的任何一个符号(注意\w匹配下划线,因此必须通过|交替运算符添加)。


推荐阅读