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;

结果如下:
image

image

posted @ 2023-02-24 16:51  捷后愚生  阅读(2036)  评论(0编辑  收藏  举报