如何在Oracle regexp_replace中通过正则表达式从逗号分隔列表中删除重复项?

Bor*_*lov 4 regex oracle

我有

'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1'
Run Code Online (Sandbox Code Playgroud)

并希望得到

'VA - HRD 1, VA - NOVA 1'
Run Code Online (Sandbox Code Playgroud)

我在尝试

regexp_replace( 'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1' ,'([^,]+)(,\1)+', '\1')
Run Code Online (Sandbox Code Playgroud)

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

请帮忙...

vks*_*vks 8

([^,]+)(,[ ]*\1)+
Run Code Online (Sandbox Code Playgroud)

试试这个.这很有用.看看演示.

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

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

                     ^  ^
Run Code Online (Sandbox Code Playgroud)

这里的空间.你没有考虑到这一点,因为第一场比赛没有任何空间,所以.所以inlcde [ ]*或\s*让它接受.