Oracle屏蔽字符串中一组字符的多个实例-字符串中“要屏蔽的短语”的多种变体

我正在尝试屏蔽字符串中一组字符的多个实例。

字符串最可能的变体是

  • BL-nn-nnnnnnn
  • BLnn-nnnnnnn
  • BLnnnnnnnnn
  • BL-nnnnnnnnn

并全部用'BL-XX-XXXXXXX '屏蔽(请注意,在屏蔽字符串的末尾使用空格字符),在字符串中也可以用BL开头。


非常感谢REGEXP_REPLACE()函数的任何帮助。谢谢!

HUNDUNYISI 回答:Oracle屏蔽字符串中一组字符的多个实例-字符串中“要屏蔽的短语”的多种变体

以下内容:

REGEXP_REPLACE(TEST_DATA,'BL[-0-9 ]+','BL-XX-XXXXXXX ')

似乎可以做您想做的事。

db<>fiddle here

,

首先通过使用regexp_replace()[[:alnum:]]模式代表数字或数字字符来删除所有破折号和格式:

select regexp_replace(replace(str,'-',''),'BL([[:alnum:]]{2})([[:alnum:]]{7})','BL-\1-\2 ')  
       as "Result String"
  from tab

Demo

本文链接:https://www.f2er.com/3032169.html

大家都在问