我很努力地使用正则表达式替换解决方案,它将从VARCHAR2字段中删除引号之间的所有文本,即使这些引号之间的文本引用了文本也是如此 例如,文本:plsql正则表达式来删除引号之间的文本
'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;
但子报价之间的文本仍然存在。
它甚至有可能用正则表达式来实现,还是应该在某个循环中分割和分析内容? 一个理想的解决方案是,如果它可以处理引用文本中的引用文本的无限级别事件。