我已经查阅了有关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帖子的参考:
Oracle文档的参考:
([0-9]+)
。 - Aserre