Oracle REGEXP_SUBSTR提取$与Request间文本的技术求助
解决提取$与Request之间文本的问题
我来帮你搞定这个正则提取的问题!你之前的语句没得到想要的结果,主要是正则表达式的匹配逻辑出了点小问题,咱们一步步来调整:
正确的SQL语句
直接用下面的语句就能得到你想要的结果:
SELECT REGEXP_SUBSTR(notes, '\$.*?(?=Request)') AS extracted_text FROM your_table;
针对你的示例测试
把示例字符串代入的话,执行后会返回:$60 blahblah blah,完全符合你的预期。
正则逻辑解释
\$:匹配字符$(因为$在正则里是特殊字符,需要用反斜杠转义).*?:非贪婪模式匹配任意字符(这样会在遇到第一个Request时停止,避免匹配过多内容)(?=Request):正向预查,确保匹配的内容后面紧跟着Request,但不会把Request包含到结果里
为什么你的原语句不对?
你之前用的([^\$]).*?(?=Request)里,[^\$]是匹配**非$**的字符,相当于直接跳过了$符号,自然就取不到包含$的内容啦。
内容的提问来源于stack exchange,提问作者Dritzz
相关产品推荐
相关产品推荐

