hive 使用regexp筛选和替代特殊字符


```sql
---替换
regexp_replace(lower(name),'[^0-9a-zA-Z\\u4e00-\\u9fa5]','')  除中文字母数字以外的字符全部替换掉
“\u4e00”和“\u9fa5”是unicode编码,并且正好是中文编码的开始和结束的两个值,所以这个正则表达式可以用来判断字符串中是否包含中文

例如:
select 
'李中*华',--李中*华
regexp_replace(lower('李中*华' ),'[^0-9a-zA-Z\\u4e00-\\u9fa5]','') ---李中华


---查找

select
regexp_extract('李中*华','([~.!!@#¥%……&*()【】-=——+?《》/·。])')----*
再结合length()就可以锁定有特殊字符的数据

例如:
where length(regexp_extract('李中*华','([~.!!@#¥%……&*()【】-=——+?《》/·。])'))>0

上一篇:python 判断字符串中是否有中文


下一篇:python re 正则匹配中文