【发布时间】:2017-10-30 13:30:35
【问题描述】:
我在表格列中有一个字符串,由“+”分隔。我需要删除重复项。
插图:
我的数据:
a+a+a+b+b+c+c
期望:
a+b+c
我尝试使用REGEXP_REPLACE,但无法逃脱+ 字符,因为它是保留的。
我在comma 分隔值方面取得了成功,但在+ 或? 分隔值方面需要帮助。
带有comma 分隔值的工作代码:
SELECT REGEXP_REPLACE ('a,a,a,b,b,c,c', '([^,]+)(,\1)+', '\1') FROM DUAL;
【问题讨论】:
-
你试过转义+吗?比如:('a+a+a+b+b+c+c', '([^\+]+)(+\1)+', '\1')
-
@marco 你忘了逗号:
([^\+]+)(\+\1)+ -
谢谢保罗,我已经更正了
-
工作.. 谢谢:)
-
当重复项不连续时,此正则表达式不起作用。如果您有
ba+a,它也不起作用,因为它将匹配ba中的a并删除应该保留的唯一a术语。