【发布时间】:2019-06-02 17:49:00
【问题描述】:
我正在尝试从 Redshift 中的字符串中删除连续数字。
来自'16,16,16,3,3,4,16,16,' 我想得到'16,3,4,16,'。
以下结构对我不起作用:
SELECT regexp_replace('16,16,16,3,3,4,16,16,', '(.+)\1{1,}', '\1');
它返回完全相同的字符串。 :(
谢谢!
【问题讨论】:
-
你能不能用
\\1代替\1让我知道它是否有效? -
这个改变是否足以解决您的问题?
-
嗨艾伦,谢谢你的建议。我现在无法访问我的 Redshift 实例,但会尽快尝试并通知您。
-
python udf 可能是一个不错的选择,如果你不能让上述工作
-
试试
SELECT regexp_replace('16,16,16,3,3,4,16,16,', '([0-9]+)(,\1)+', '\1'),或者按照艾伦的建议,加倍反斜杠。如果两者都不起作用,则正则表达式引擎不允许模式中的反向引用。好吧,我认为它不适用于一般情况,请在此处考虑正则表达式以外的选项。
标签: regex amazon-redshift