-2
我試圖提取Oracle中插入符號標誌之間的值的字段的提取BETWEEN CARET正負號值在Oracle
值
AAA_0^%CELEBRTE%^S~AAA_2^TOP^S~simpLE^True^S~AAA1^NICE^S~
輸出
^%CELEBRTE% TOP True NICE
任何幫助將是讚賞
我試圖提取Oracle中插入符號標誌之間的值的字段的提取BETWEEN CARET正負號值在Oracle
值
AAA_0^%CELEBRTE%^S~AAA_2^TOP^S~simpLE^True^S~AAA1^NICE^S~
輸出
^%CELEBRTE% TOP True NICE
任何幫助將是讚賞
此作品:
SQL> SELECT regexp_replace('AAA_0^%CELEBRTE%^S~AAA_2^TOP^S~simpLE^True^S~AAA1^NICE^S~'
2 , '^[^^]*\^([^^]*)\^[^^]*\^([^^]*)\^[^^]*\^([^^]*)\^[^^]*\^([^^]*)\^.*'
3 , '\1 \2 \3 \4') rr
4 FROM dual;
RR
------------------------
%CELEBRTE% TOP True NICE
很顯然,假設您只有4項要從數據中提取。
我不是正則表達式大師,作爲我自己的練習,我用我認爲是蠻力的方法解決了這個問題。我可以看到一組重複的模式來提取每個字符串,但是在我對此的研究中,似乎沒有辦法做到自動創建新捕獲組的「重複反向引用」。如果其他人知道如何做到這一點,我會歡迎提供意見。
正則表達式的一對夫婦方便的資源:
嘛,你嘗試過什麼? – OldProgrammer
regexp_substr將是一個起點。 –