Sql Oracle删除姓名/姓氏/电话和地址
我有一个包含用户注释的Oracle表。我想掩盖所有的单词,如姓名/姓氏/电话和地址 在Oracle中有没有一种简单的方法可以做到这一点 例如:Sql Oracle删除姓名/姓氏/电话和地址,sql,regex,oracle,regexp-replace,regexp-substr,Sql,Regex,Oracle,Regexp Replace,Regexp Substr,我有一个包含用户注释的Oracle表。我想掩盖所有的单词,如姓名/姓氏/电话和地址 在Oracle中有没有一种简单的方法可以做到这一点 例如: "Hello, i'm Alex DURAND, my phone number is 0685987525" should be transform in "Hello, i'm XXXX XXXXXX, my phone number is XXXXXXXXXX" 当任务是删除regexp\u替换的单词时,非
"Hello, i'm Alex DURAND, my phone number is 0685987525"
should be transform in
"Hello, i'm XXXX XXXXXX, my phone number is XXXXXXXXXX"
当任务是删除regexp\u替换的单词时,非常感谢
select regexp_replace(lower(user_comment), '(surname|name|telephone|address)', '') replace_regexp
from tab1
regexp\u replace()
函数通过'([[:digit:]])
模式屏蔽电话号码regexp_substr()
函数通过'(i'm)(.*?[^,]+'
模式提取以i'm
开头的部分'[^]+'
regexp_substr()函数从第二步中派生的字符串中提取出来的regexp\u replace()
和replace()
函数连续使用非空白字符匹配
with t2 as
(
select regexp_replace( str, '([[:digit:]])', 'X') as str,
regexp_substr(str,'(I''m )(.*?)[^,]+',1,1,'i') as str2
from t --> your original table
), t3 as
(
select regexp_substr(str2,'[^ ]+',1,2) as name,
regexp_substr(str2,'[^ ]+',1,3) as surname,
t2.*
from t2
)
select replace(
replace( str, name, regexp_replace(name,'(*\S)','X') )
,surname, regexp_replace(surname,'(*\S)','X') )
as "Result String"
from t3
str
列中每个值的格式假定在整个表格中是固定的
评论的格式总是一样的吗?如果不是,你怎么知道“亚历克斯·杜兰德”(应该戴面具)和“他的名字”(不应该戴面具)不同?还有,你怎么知道“09012020”是电话号码而不是今天的日期?很快-我们需要规则。