【问题标题】:Getting data using Regular Expression in oracleoracle中使用正则表达式获取数据
【发布时间】:2013-07-14 04:00:51
【问题描述】:

我有类似的数据

[A_B] A [1_@_312_AS] 232[232_A_@]AB_!@_12

我想要的是

A 232AB_!@_12

我想用正则表达式获取不在括号中的数据。我在 Oracle DB 中使用 REGEX_SUBSTR 函数

有人可以帮助我是这个领域的新手吗?

【问题讨论】:

  • 那么,你是如何使用regex_substr的?
  • 我的问题是如何您使用过regex_substr?你没用过……那么,你试过用什么正则表达式?
  • 哦..对不起..我试过 [^([*])]
  • \[[^]]+\]怎么样
  • @shyam - 这将匹配第一个括号中的所有内容..

标签: regex database oracle


【解决方案1】:
SELECT 
    regexp_replace(t.mytext, '\[[^]]*\]', '')
FROM   
    (SELECT '[A_B] A [1_@_312_AS] 232[232_A_@]AB_!@_12' as mytext FROM DUAL) t

问候,

阿克达

编辑: regexp_replace 在参数 1(文本)中搜索参数 2(模式)并将所有实例替换为参数 3(空字符串 '')

该模式匹配围绕任意数字 (*) 的任何字符的左括号和右括号 (\[ \]),除了右括号 ([^]])

希望能以某种方式解释它... :)

【讨论】:

  • 如果你能解释一下,那就太好了.. :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 2015-12-02
相关资源
最近更新 更多