从一系列括号中删除重复项

时间:2016-09-15 17:44:02

标签: regex oracle

我正在尝试从括号内包含的一系列值中删除重复项。如:

(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)神秘地消失。

0 个答案:

没有答案