我通过oracle代码找到了这段代码:
查询1 :
SELECT RTRIM (REGEXP_REPLACE ('ABC,CDE,ABC','([^,]*)(,\1)+($|,)','\1\3'),',') FROM DUAL;
输出1 :
ABC,CDE,ABC
查询2 :
SELECT RTRIM (REGEXP_REPLACE ('ABC,ABC,CDE','([^,]*)(,\1)+($|,)','\1\3'),',') FROM DUAL;
输出2 :
ABC,CDE
查询3 :
SELECT RTRIM (REGEXP_REPLACE ('ABC,ABC,CDE,CDE,ABC,CDE','([^,]*)(,\1)+($|,)','\1\3'),',') FROM DUAL;
输出3 :
ABC,CDE,ABC,CDE
虽然我知道这个regexp_replace正在做什么,但是我需要了解这个regexp_replace一步一步做什么以及每个关键词的意思。我能够找到单个语法部分的用法,但不能解密它与组合。
此外,如果有任何网站/书籍可供学习regexp_replace函数的复杂用法,那将会很有帮助。