我正在尝试从括号内包含的一系列值中删除重复项。如:
(QL)(M)(ST)(M)(PA)(AGE)(QL)
由于某些原因,我的正则表达式得到了不稳定的结果。
SELECT REGEXP_REPLACE('(QL)(M)(QL)(M)(QL)', '(\(.*\))(.*?)\1', '\1') FROM DUAL;
结果
(QL)(M)(QL)
似乎只删除了每个重复的第一次出现。
SELECT REGEXP_REPLACE('(QL)(M)(QL)(M)(QL)(AGE)(ST)(PA)(ST)(ST)',
'(\(.*\))(.*?)\1', '\1') FROM DUAL;
结果
(QL)(M)(QL)(AGE)(ST)
副本(QL)仍然存在,并且(PA)神秘地消失。