hive:regexp_replace函数
语法
regexp_replace(subject,pattern,str)
subject,pattern,str都为字符串
- subject为被替换的字符串
- pattern为正则表达式
- str需要替换的字符串
实例
SELECT aa
,REGEXP_REPLACE(aa, '[a-z]', '*') as `替换所有字母` -- 替换所有字母
,REGEXP_REPLACE(aa, '[abc]', '*') as `替换所有字母` -- 替换指定字母
,REGEXP_REPLACE(aa, '[^abc]', '*') as `替换所有非字母` -- 替换所有非字母
,REGEXP_REPLACE(aa, '[0-9]', '*') as `替换所有数字` -- 替换所有数字
,REGEXP_REPLACE(aa, '[\s\S]', '*') as `替换空白符、换行` -- 替换空白符、换行,\s:是匹配所有空白符,包括换行,\S:非空白符,不包括换行。
,REGEXP_REPLACE(aa, '\w', '*') as `替换所有字母、数字、下划线` -- 替换所有字母、数字、下划线。等价于 [A-Za-z0-9_]
,REGEXP_REPLACE(aa, '[-8+]', '*') as `只替换-8` -- 只替换-8这个字符
,REGEXP_REPLACE(aa, '[-8*]', '*') as `替换-8、-、8` -- 替换-8、-、8这几个字符
FROM (
SELECT '5e40b2b8-0916-42c0-899a-eaf4b2df 5268' AS aa
UNION ALL
SELECT 'c81b5906-38d7-482c-8b66-be5d3359cbf6' AS aa
UNION ALL
SELECT '8856fd0a-2337-4605-963f-0d0d059b1937' AS aa
) t;
结果如下: