You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL如何移除括号外所有内容?求正确正则表达式

解决Oracle SQL提取括号内内容的问题

要移除括号外的所有内容,只保留括号里的文本,你需要调整正则表达式的逻辑——捕获括号内的内容,替换掉整个字符串为捕获到的部分,而不是替换括号内的内容。

正确的SQL语句

SELECT REGEXP_REPLACE(example, '.*\(([^)]+)\).*', '\1') AS result FROM your_table;

逻辑说明

  • .*:匹配括号左侧的任意字符(贪婪匹配,确保定位到最后一个左括号)
  • \(:匹配左括号本身
  • ([^)]+):捕获组,匹配除右括号外的所有字符(也就是括号内的目标内容)
  • \):匹配右括号本身
  • .*:匹配括号右侧的任意字符
  • \1:将整个字符串替换为第一个捕获组的内容(即括号内的文本)

为什么你的原语句不生效?

你写的'\([A-Za-z ]\)'只会匹配单个字母/空格加括号的模式,并且是把这部分替换为空,完全没处理括号外的内容,自然达不到需求。

测试示例

针对你的输入:

  • Stabilization loans, mortgage lending (StabL ML) → 输出 StabL ML
  • Refinanced loans and restructured loans (RefL RL) → 输出 RefL RL
  • Individual reserve (IR) → 输出 IR

内容的提问来源于stack exchange,提问作者Yurka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:05:29