gpt4 book ai didi

sql - REGEXP_REPLACE 反向引用

转载 作者:行者123 更新时间:2023-12-04 22:41:07 25 4
gpt4 key购买 nike

我已经阅读了 Oracle 关于 REGEXP_REPLACE 函数的文档,但它没有按预期工作

这是我得到的:


我的目标:为每组连续数字连接一个字符

我的输入:

(1101 + 1102) * 1103 + 1104 + 1105

预期输出:

(T1101 + T1102) * T1103 + T1104 + T1105

代码:

SELECT
REGEXP_REPLACE('(1101 + 1102) * 1103 + 1104 + 1105',
'[0-9]+',
'T\1') "REZ"
FROM DUAL;

我得到的结果:

(T\1 + T\1) * T\1 + T\1 + T\1

我搜索了很多 Stack-overflow 帖子,它们似乎都可以在这种情况下正常工作,没有任何关于\1

的问题

还尝试了不同的地方来测试代码:Tod for oracle、SqlPlus 和另一个应用程序,它们都给了我相同的结果。

那么,有人能告诉我我的代码有什么问题吗?

注意:

我不怀疑我的正则表达式有任何问题,之前在 oracle 中的不同场景中进行了测试,并且它可以正常工作。另外,找到了匹配项,但替换部件不起作用。

一些 Stack-overflow 帖子的引用:

Ref1 , Ref2 , Ref3

Oracle 文档引用:

REGEXP_REPLACE

最佳答案

\1back reference查找以前匹配的组和组可以通过将其括在括号 (...)

中来捕获

应该是

([0-9]+)

关于sql - REGEXP_REPLACE 反向引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25303549/

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