This question already has answers here:
How to remove duplicates from comma separated list by regex in Oracle but I don't want duplicates values? [duplicate]

(2 个回答)



How to remove duplicates from space separated list by Oracle regexp_replace? [duplicate]

(3 个回答)


3年前关闭。




我有
'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1'

并且想要得到
'VA - HRD 1, VA - NOVA 1'

我在尝试
regexp_replace( 'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1' ,'([^,]+)(,\1)+', '\1')

但它不会删除所有重复项,它会产生:VA - HRD 1, VA - HRD 1, VA - NOVA 1
请帮忙...

最佳答案

([^,]+)(,[ ]*\1)+

试试这个。这有效。见演示。

http://regex101.com/r/yG7zB9/8

问题是 VA - HRD 1, VA - HRD 1
                     ^  ^

这里的空间。你没有考虑到这一点,因为第一个匹配没有空间隐藏它。所以 inlcde [ ]*\s* 使其接受。

关于regex - 如何通过 Oracle regexp_replace 中的正则表达式从逗号分隔列表中删除重复项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26672269/

10-12 05:24