如何只替换Oracle中的某部分文本?
How to replace only certain part of the text in Oracle?
我正在尝试替换文本中的某些单词。但是,如果它是 url 的一部分,则不希望该词被替换。例如:技术一词。它替换了两个地方(包括url)。
select regexp_replace('Part of the Technical Network Group https://technical.com/sites/',
'technical','tech',1,0,'i')
from dual
输出:
Part of the tech Network Group https://tech.com/sites/
预期输出:
Part of the tech Network Group https://technical.com/sites/
分两步完成。
首先,如果单词出现在单词之间,其次,如果单词是句子的第一个单词。
select
regexp_replace(regexp_replace('technical Part of Technical Group https://technical.com/sites/',
' technical',
' tech',1,0,'i'), 'technical ', 'tech ',1,0,'i')
from dual
希望这能解决您的问题。
此方法使用一次 regexp_replace() 调用。仅当单词 'technical'(不区分大小写)位于行首或 space 之前时,它才与单词 'technical' 匹配,并保存前面的字符。它被保存的字符(由 ''
引用)替换,然后是 'tech'.
with tbl(str) as (
select 'Technical Part of the Technical Network Group https://technical.com/sites/' from dual
)
select regexp_replace(str, '(^| )technical', 'tech', 1, 0, 'i') fixed
from tbl;
FIXED
----------------------------------------------------------------
tech Part of the tech Network Group https://technical.com/sites/
我正在尝试替换文本中的某些单词。但是,如果它是 url 的一部分,则不希望该词被替换。例如:技术一词。它替换了两个地方(包括url)。
select regexp_replace('Part of the Technical Network Group https://technical.com/sites/',
'technical','tech',1,0,'i')
from dual
输出:
Part of the tech Network Group https://tech.com/sites/
预期输出:
Part of the tech Network Group https://technical.com/sites/
分两步完成。
首先,如果单词出现在单词之间,其次,如果单词是句子的第一个单词。
select
regexp_replace(regexp_replace('technical Part of Technical Group https://technical.com/sites/',
' technical',
' tech',1,0,'i'), 'technical ', 'tech ',1,0,'i')
from dual
希望这能解决您的问题。
此方法使用一次 regexp_replace() 调用。仅当单词 'technical'(不区分大小写)位于行首或 space 之前时,它才与单词 'technical' 匹配,并保存前面的字符。它被保存的字符(由 ''
引用)替换,然后是 'tech'.
with tbl(str) as (
select 'Technical Part of the Technical Network Group https://technical.com/sites/' from dual
)
select regexp_replace(str, '(^| )technical', 'tech', 1, 0, 'i') fixed
from tbl;
FIXED
----------------------------------------------------------------
tech Part of the tech Network Group https://technical.com/sites/