首页 > 解决方案 > 如何构造特定的正则表达式

问题描述

我想创建一个正则表达式,用“*”替换字符串中除最后两个字符之外的每个字符。例如:'abcdefgh' --> '******gh'

我正在使用 oracle 的 regexp_replace,我写了类似的东西:

regexp_replace('dfdfdfdfsdf','(.*)(..)','*\2',1,0) 

但它以一个“*”结尾

dfdfdfdfsdf --> *df

我会很感激你的帮助

标签: sqlregexoracle

解决方案


您可以使用LPAD.

select LPAD(SUBSTR('dfdfdfdfsdf',-2),LENGTH('dfdfdfdfsdf'),'*') from dual;

输出

*********df

在这里查看现场演示


推荐阅读