昨天接到一个需求,其中有部分是关于字段匹配是否是中文,如果是中文就需要去处理~
当时想到用正则表达式处理:
中文的正则表达式: [\u4e00-\u9fa5]
这种写法是: ^[\u4e00-\u9fa5]$ ^代表开头,$这种代表结尾,总的结合来说就
是开头跟结尾都是中文
举例说明:'我爱你中国' 检索里面是否全是中文,但由于hive库这个表达式有\需要转义
select '我爱你中国' rlike '^[\\u4e00-\\u9fa5]$ ' ; 执行后会返回真
select case when '我爱你中国' rlike '^[\\u4e00-\\u9fa5]$ ' then 1 else 0 end; 执行后会返回1
这是开头和结尾全都是中文的情况
如果是想找里面有中文的就好了,那就不用开头和结尾那个符号:
select 'asa我爱你中国ssad' rlike '[\\u4e00-\\u9fa5] ' ; 执行后会返回真
select case when 'sdasd我爱你中国asdsad' rlike '[\\u4e00-\\u9fa5]' then 1 else 0 end; 执行后会返回1
注意细节 ,记得加转义~