加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何在PostgreSQL正则表达式中使用超过9的反向引

发布时间:2020-12-14 05:48:57 所属栏目:百科 来源:网络整理
导读:以下正则表达式使用反向引用数字简单地提取匹配文本的一部分: SELECT regexp_replace('ABCDEFGHIJ','(w)(w)(w)(w)(w)(w)(w)(w)(w)(w)','2');B 但是如何在第九个匹配的子串之外进行反向引用? 以下内容不起作用(返回第一个匹配0),也不会使用$10或
以下正则表达式使用反向引用数字简单地提取匹配文本的一部分:

SELECT regexp_replace('ABCDEFGHIJ','(w)(w)(w)(w)(w)(w)(w)(w)(w)(w)','2');
B

但是如何在第九个匹配的子串之外进行反向引用?

以下内容不起作用(返回第一个匹配0),也不会使用$10或${10}:

SELECT regexp_replace('ABCDEFGHIJ','10')
A0

注意:为了清楚起见,这个例子被简化了,当然不需要超越反向引用9.

解决方法

正如我在评论和@ p.s.w.g的回答中所说,根据 the documentation,这是不可能的.

但是,还有一些其他RegEx功能可能会有所帮助.如果你可以用现实问题更新你的问题,我可以更具体地帮助你.但这是一个使用regexp_matches()解决您的初始问题的示例.

SELECT matches[10]
FROM regexp_matches('ABCDEFGHIJ','(w)(w)(w)(w)(w)(w)(w)(w)(w)(w)') AS matches;

 matches 
---------
 J
(1 row)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读