如何从配置单元中的文本中删除非 Ascii 字符(非键盘特殊字符)
How to remove non Ascii characters(non keyboard special charecters) from a text in hive
我想从我的文本中删除非 Ascii 字符并将其替换为“”。
我的 table 中有一些无效字符,我正试图将其删除。但是我 运行 遇到了其中一个问题。
示例:
123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt
预期输出:
123Abh street
目前我正在使用
regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt','[^[:print:]],'')
但这不起作用,有什么建议吗?
您可以使用
regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt', '[^\x{0000}-\x7E]+', '')
这里,
[^
- 匹配任何字符的取反字符 class 的开头,但
\x{0000}-\x7E
- 从 NULL
到 ~
字符的 ASCII table
]+
- class结束,匹配一次或多次。
如果我需要删除除空格和连字符之外的所有特殊字符怎么办? - 在这种情况下,您需要使用
regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt', '[^\w\s-]|_', '')
这里,[^\w\s-]|_+
匹配除字母、数字、_
、空格和-
以外的任何一个符号,或者下划线(注意\w
匹配下划线,因此它必须通过 |
、交替运算符添加)。
我想从我的文本中删除非 Ascii 字符并将其替换为“”。
我的 table 中有一些无效字符,我正试图将其删除。但是我 运行 遇到了其中一个问题。
示例:
123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt
预期输出:
123Abh street
目前我正在使用
regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt','[^[:print:]],'')
但这不起作用,有什么建议吗?
您可以使用
regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt', '[^\x{0000}-\x7E]+', '')
这里,
[^
- 匹配任何字符的取反字符 class 的开头,但\x{0000}-\x7E
- 从NULL
到~
字符的 ASCII table
]+
- class结束,匹配一次或多次。
如果我需要删除除空格和连字符之外的所有特殊字符怎么办? - 在这种情况下,您需要使用
regex_replace('123Abh¿½ï¿½ï¿½ï¿½ï¿½v streeÁÉÍÓt', '[^\w\s-]|_', '')
这里,[^\w\s-]|_+
匹配除字母、数字、_
、空格和-
以外的任何一个符号,或者下划线(注意\w
匹配下划线,因此它必须通过 |
、交替运算符添加)。