我正在努力使用正则表达式替换解决方案,该解决方案将删除 VARCHAR2 字段中引号之间的所有文本,即使这些引号之间的文本也引用了文本例如文本:
'text start 'text inside' text end' leftover 'some other text'
正则表达式替换后应包含: leftover
我想出的是这段代码:
with tbl as (
select
'''text start ''text inside'' text end'' leftover ''some other text''' as str
,'\''(.*?)\''' as regex
from dual
)
select
tbl.str as strA
,regexp_replace(tbl.str,tbl.regex, '') as strB
from tbl;
但子引号之间的文字仍然存在。
甚至可以使用正则表达式来实现这一点,还是应该在某个循环中拆分和分析内容?一个理想的解决方案是如果它可以处理引用文本中引用文本的无限级别出现。