我是数据库开发的新手。我有一个新的任务。
我需要从列中的13xxxxx
开始找到一个模式,其中包含如下数据:
["1301800-" "1321002-" "1202038-" "1201505-[\"32909062963\"]"]
试图使用正则表达式,但我没有得到理想的结果。
答案 0 :(得分:0)
这是一个可以执行您想要的正则表达式:'"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>