2017-04-19 76 views
-1

我是數據庫開發新手。我有一個新的任務。 我需要找到一個模式,從13xxxxx從下面有數據的列開始:在oracle中使用正則表達式進行模式搜索plsql

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

嘗試使用正則表達式,但我沒有得到期望的結果。

+2

向我們展示你的當前查詢的嘗試。並添加更多樣本數據以及預期結果 - 所有以及格式化文本。 – jarlh

+0

這個問題並不清楚。 [mcve]可以用來編輯你的問題,澄清它並獲得一些幫助。因爲,真的很難理解你需要實現什麼邏輯。 – Aleksej

+0

數據如下: – Pramoddt

回答

0

這是一個正則表達式,它可以做你想做的事:'"13[0-9]{5}\-?'。它匹配以13開頭的7位數字和可選的尾部減號。

這個例子對於修剪整齊的領先"

SQL> with dta as 
    2 (select '["1301800-" "02-" "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- 
02- 

SQL>