用于替换除最后一个和第一个非 space 字符之外的所有字符的正则表达式

Regex for replacing all characters excepting last and first non space ones

我将电子邮件存储在 SAP Hana table char 数据类型的列中。我需要用“*”字符替换所有字母和数字,第一个和最后一个非空白字符除外。我这样写正则表达式:regex_replace('abcd@efg.hij', '(?!^)[A-Za-z0-9](?!$)', '*') 它工作正常,我收到屏蔽电子邮件 'a***@***.**j'。 但是当电子邮件的开头 and/or 结尾有一些空格时,它就会出错。例如,如果电子邮件字符串是“abcd@efg.hij”,结果将是 ' ****@***.**** ' 而我需要 ' a***@***.**j ' 不幸的是,我无法 trim 在正则表达式之前发送电子邮件。

Denis,我尝试在 SELECT 语句中使用 Replace_Regexp 函数

select
REPLACE_REGEXPR('(?!^)[\sA-Za-z0-9](?!$)' IN trim('    abcd@efg.hij   ') WITH '*')
from dummy;

它删除了前导和尾随空格和 returns "a***@***.**j"