You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hive表中查找并筛选含非英文字符的记录

Hive表筛选含非英文字符记录的解决方案

问题分析

你原查询使用[^a-zA-Z\\d\\s:]匹配非英文字符,但可能因正则范围限制或转义问题未得到准确结果。该正则会排除数字、空格、冒号,若需求是筛选中文、带重音西语字符、乱码这类非基础英文字符,可以通过更精准的正则调整解决。

正确查询语句

方式1:匹配非a-zA-Z字符(保留指定排除项)

若需继续排除数字、空格、冒号,仅匹配这些之外的非英文字符,可简化正则的数字匹配规则(避免转义歧义):

SELECT 
      tbl1.id                 AS id
    , tbl1.first_name         AS first_name
    , tbl1.second_name        AS second_name
FROM emp_table tbl1                                                         
WHERE tbl1.first_name RLIKE '[^a-zA-Z0-9\\s:]' 
   OR tbl1.second_name RLIKE '[^a-zA-Z0-9\\s:]';

方式2:匹配所有非ASCII字符(覆盖多语言场景)

如果要精准筛选所有非基础ASCII的字符(包括中文、日文、带重音西语字符、乱码等),使用Unicode属性匹配:

SELECT 
      tbl1.id                 AS id
    , tbl1.first_name         AS first_name
    , tbl1.second_name        AS second_name
FROM emp_table tbl1                                                         
WHERE tbl1.first_name RLIKE '[^\\p{ASCII}]' 
   OR tbl1.second_name RLIKE '[^\\p{ASCII}]';

验证结果

针对你的示例数据,上述两种查询都会返回预期输出:

id  first_name  second_name
1   尚            爱华
2   Shané        Olum�

内容的提问来源于stack exchange,提问作者Rummy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 11:36:03