gpt4 book ai didi

sql - Oracle 正则表达式中的 ?= 相当于什么

转载 作者:行者123 更新时间:2023-12-02 09:11:47 25 4
gpt4 key购买 nike

我正在尝试在 regexp_substr() 中编写正则表达式。

例如,我有一个字符串 DA.*BLK,我想提取 AB 之间的任何内容。我现在正在做的是使用

replace(replace(regexp_substr(target_column,'A.*B'),'A',''),'B','')` 

然后我得到介于两者之间的任何内容。

但我认为这种方式可能效率不高,也不优雅。我也尝试在那里使用 ?= 但似乎 Oracle 不支持这样的子句。有人可以让我知道一种更好的方法来实现我的目的吗?非常感谢!

最佳答案

使用提取组

REGEXP_SUBSTR('DASOMETHINGBLK','DA(.*)BLK', 1,1,NULL,1)
-- ^ ^ ^
--starting from first, find first 1st match bet'n ()

http://sqlfiddle.com/#!4/97eade/967

关于sql - Oracle 正则表达式中的 ?= 相当于什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51238633/

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