gpt4 book ai didi

regex - 使用 PostgreSQL regexp_replace 函数删除连续的重复字符

转载 作者:行者123 更新时间:2023-11-29 11:29:40 37 4
gpt4 key购买 nike

使用正则表达式删除所有连续的重复字符。

在 Javascript 中这很有效:

txt='aaa bbb 888 bbb ccc ddd'.replace(/(?!(?!(.)\1))./g,'');

返回 'a b 8 b c d'

如何使用 Posgresql regexp_replace 函数来实现?这行不通:

SELECT regexp_replace('aaa bbb 888 bbb ccc ddd',E'(?!(?!(.)\\\\1)).','g');

$ psql -c "SELECT regexp_replace('aaa bbb 888 bbb ccc ddd',E'(?!(?!(.)\\1)).','g');"
regexp_replace
-------------------------
aaa bbb 888 bbb ccc ddd
(1 row)

$ psql -c "SELECT regexp_replace('aaa bbb 888 bbb ccc ddd','(?!(?!(.)\1)).','g');"
ERROR: invalid regular expression: invalid backreference number

我做错了什么?

最佳答案

有一个 similar SO question可以帮助您得到答案:

SELECT regexp_replace('aaa bbb 888 bbb ccc ddd', '(.)\1{1,}', '\1', 'g');
regexp_replace
----------------
a b 8 b c d
(1 row)

它使用 backreference捕获重复字符组。

关于regex - 使用 PostgreSQL regexp_replace 函数删除连续的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38966825/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com