当前位置: 首页 > 面试题库 >

如何在Oracle SQL查询中的方括号之间提取字符串

魏康安
2023-03-14
问题内容

我试图从字符串中提取括号之间的值。我怎样才能做到这一点。

例如:我有这个字符串:Abta Gupta(01792)

我想得到括号之间的结果,即:01792

我正在尝试编写这样的查询:

select substr('Gupta, Abha (01792)',instr('Gupta, Abha (01792)','(')+1,5) from dual;

这实际上给了我结果。但是问题是括号之间的字符数不一定总是5。

因此,我想避免在查询中对“ 5”进行硬编码。

有人可以让我知道如何使这个查询更通用。

谢谢阿卜哈


问题答案:

我们可以REGEXP_SUBSTR在这里尝试使用:

SELECT REGEXP_SUBSTR('Gupta, Abha (01792)', '\((.+)\)', 1, 1, NULL, 1) FROM dual;


 类似资料:
  • 我用过 提取 从 但我只得到这个 如何修复我的正则表达式?

  • 问题内容: 我只需要返回字符串中方括号内包含的文本。我有以下正则表达式,但这也会返回方括号: 字符串只能包含一组方括号,例如: 我希望匹配项包含“一些重要信息”,而不是当前包含的“ [一些重要信息]”。 问题答案: 使用分组。我添加了一个使之匹配的“ ungreedy”,因为这可能就是您想要的。

  • 好的正则表达式问题,如何提取不在两个字符之间的字符,在本例中为括号。 我有一个字符串,例如:word1 |{word2 | word3}| word 4 我只想得到第一个和最后一个“管道”,而不是括号内的第二个。我尝试了无数次负克拉和负分组的尝试,但似乎无法让它发挥作用。 基本上,我在JavaScript拆分函数中使用这个正则表达式将其拆分为一个数组,其中包含:“word1”、“{word2|wo

  • 问题内容: 如何从中提取字符串并使用模式匹配或其他方法。例如,如果文本是` “您好(Java)” 然后如何获得。 谢谢。 问题答案: 试试这个: 要么

  • 假设一个字符串的格式如下: 我想提取: 什么正则表达式可以用于这样的提取? 我被这个困住了:

  • 问题内容: 如何获取字符串中的括号值。 我只需要AED文字。谢谢 问题答案: 编译并打印“ AED”。甚至适用于多个括号: 正则表达式表示: :字符 :开始比赛组 :以下字符之一 :不是以下字符 :与前面的一样,这表示“除” 以外的所有字符 :集合中的其他内容之一 :停止比赛组 :字面量闭式括号