regexp替换配置单元中的解决方案以屏蔽前6个字符

lxkprmvk  于 2021-06-24  发布在  Hive
关注(0)|答案(2)|浏览(454)

尝试使用 regexp_replace . 但是,无法实现解决方案。
输入:

123-45-6789

输出:


### -##-6789
falq053o

falq053o1#

获取前6个字符的子字符串并替换其中除 - ,然后与字符串的其余部分连接:

select regexp_replace(substr('123-45-6789',1,6),'[^-]','#')||substr('123-45-6789',7)

结果:


### -##-6789

对于配置单元版本<2.2.0,请使用concat而不是| |运算符:

select concat( regexp_replace(substr('123-45-6789',1,6),'[^-]','#'), substr('123-45-6789',7))
2ic8powd

2ic8powd2#

如果你灵活使用其他字符 # 要屏蔽字符串,可以使用内置的屏蔽函数 mask_show_last_n .

select mask_show_last_n('123-45-6789',4)

输出将是 nnn-nn-6789 作为 n 默认情况下,用于在这些掩蔽函数中掩蔽数字。

相关问题