regexp_substr函數 [String]
使用正則表達式從字符串中抽取子串。正則表達式
1. 語法:
regexp_substr( expression,
regular-expression
[, start-offset [ , occurrence-number [, escape-expression ] ] ] );express
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」被」,」截取後的第三個子字符串。spa
3. 返回值:
VARCHAR.net
4. 註釋:
若是未找到 regular-expression,則 REGEXP_SUBSTR 返回 NULL。
若是指定了 start-offset,該偏移量會指定要匹配的表達式的開始處。特別地,^ 與從 start-offset 處開始的表達式的開頭相匹配。
5. 示例:
a).從字符串中截取某一部份內容regexp
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------blog
b) 截取數據表中制定字符的前的內容,下面結果截取的是該字段種「(」字符前面的內容:字符串
根據正則表達式和設置的start-offset和end-offset沒有找到匹配的子字符串,
則返回結果爲null。get