在oracleplsql中使用正则表达式进行模式搜索

在oracleplsql中使用正则表达式进行模式搜索,sql,regex,oracle,Sql,Regex,Oracle,我是DB开发的新手。我有一项新任务。 我需要从包含以下数据的列中找到一个从13xxxxx开始的模式: ["1301800-" "1321002-" "1202038-" "1201505-[\"32909062963\"]"] 尝试使用正则表达式,但没有得到所需的结果。这里有一个regexp,可以执行您想要的操作:“13[0-9]{5}\-?”。它匹配以13开头的七位数字和可选的尾随减号 此示例修剪前导以保持整洁: SQL> with dta as 2 ( select '["

我是DB开发的新手。我有一项新任务。 我需要从包含以下数据的列中找到一个从13xxxxx开始的模式:

["1301800-" "1321002-" "1202038-" "1201505-[\"32909062963\"]"]

尝试使用正则表达式,但没有得到所需的结果。

这里有一个regexp,可以执行您想要的操作:“13[0-9]{5}\-?”。它匹配以13开头的七位数字和可选的尾随减号

此示例修剪前导以保持整洁:

SQL> with dta as
  2    ( select '["1301800-" "1321002-" "1202038-" "1201505-[\"32909062963\"]"]' str
  3      from dual )
  4  select trim('"' from
  5              regexp_substr(str, '"13[0-9]{5}\-?', 1, level)
  6            ) as tkn
  7  from dta
  8  connect by level <= regexp_count(str, '"13[0-9]{5}\-?')
  9  /

TKN
----------
1301800-
1321002-

SQL>

显示您当前的查询尝试。并添加更多的样本数据和预期的结果——所有这些都是格式良好的文本。问题并不那么清楚。可能有助于编辑您的问题,澄清它,并获得一些帮助。实际上,很难理解您需要实现什么样的逻辑;很遗憾,你的截止日期如此紧迫,你没有时间提出一个恰当的问题。清楚地解释你的问题会增加你获得所需帮助的机会。例如,显示所需结果的样子。如果有经验的用户对您的帖子进行了更改,例如语法或格式,请不要更改。除非编辑不正确,例如实质性地改变了含义,否则此处的回滚被视为故意破坏。谢谢