在Javascript中这很好用:
txt='aaa bbb 888 bbb ccc ddd'.replace(/(?!(?!(.)))./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','(?!(?!(.))).','g');" ERROR: invalID regular Expression: invalID backreference number
我究竟做错了什么?
解决方法 有一个 similar SO question,可以帮助您得到答案:SELECT regexp_replace('aaa bbb 888 bbb ccc ddd','(.){1,}','','g'); regexp_replace ---------------- a b 8 b c d(1 row)
它使用backreference来捕获重复字符组.
总结以上是内存溢出为你收集整理的使用PostgreSQL regexp_replace函数删除连续重复的字符全部内容,希望文章能够帮你解决使用PostgreSQL regexp_replace函数删除连续重复的字符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)