oracle中regexp_substr函數截取子字符串


regexp_substr函數 [String]
使用正則表達式從字符串中抽取子串。

1. 語法:
regexp_substr( expression,
regular-expression
[, start-offset [ , occurrence-number [, escape-expression ] ] ] );

regexp_substr( expression, regular-expression, start-offset, end-offset);

2.參數:
expression 被搜索的字符串。
regular-expression 嘗試匹配的模式,字符截取正則表達式。
start-offset 開始搜索時相對於 expression 的偏移。start-offset 以正整數表示,表示從字符串的左端數的字符數。缺省值為 1(字符串的起點)。
occurrence-number 當 expression 中有多個匹配項時,指定一個整數來表示要定位第幾個出現的匹配項。例如,3 表示查找第三個出現的匹配項。缺省值為 1。
escape-expression regular-expression 所使用的轉義字符。缺省為反斜線字符 ()。
end-offset 獲取expression 被指定字符截取后的第幾個。
如:regexp_substr(‘aaa,bbb,ccc,ddd,eee’,’[^,]+’,1,3)
返回結果: ‘ccc’,即“aaa,bbb,ccc,ddd,eee”被”,”截取后的第三個子字符串。

3. 返回值:
VARCHAR

4. 注釋:
如果未找到 regular-expression,則 REGEXP_SUBSTR 返回 NULL。
如果指定了 start-offset,該偏移量會指定要匹配的表達式的開始處。特別地,^ 與從 start-offset 處開始的表達式的開頭相匹配。
5. 示例:
a).從字符串中截取某一部分內容

 

 

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 b) 截取數據表中制定字符的前的內容,下面結果截取的是該字段種“(”字符前面的內容:

 

 

 

 

根據正則表達式和設置的start-offset和end-offset沒有找到匹配的子字符串,
則返回結果為null。

 

 

 

 轉自:https://blog.csdn.net/u012733521/article/details/53895441


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM