REGEXP_INSTR
语法:
REGEXP_INSTR(str,pattern[,position[,occurrence[,return_opt[,match_param[,subexpr]]]]])
功能:返回满足正则表达式的字符串的起始位置或结束位置。
入参str是需要进行正则处理的字符串,支持STRING类型和NUMBER类型。
入参pattern是进行匹配的正则表达式。
入参position是起始位置,表示从第几个字符开始正则表达式匹配(默认为1)。
入参occurrence表示标识第几个匹配组,默认为1。
入参return_opt表示返回模式,0表示返回起始位置,1表示返回结束位置。
入参match_param表示模式('i'表示不区分大小写进行检索;'c'表示区分大小写进行检索。默认为'c'。)。
入参subexpr表示,对存在子表达式的pattern,函数返回匹配第subexpr个子表达式的字符串(默认是0)。
函数返回值是INTEGER类型。
说明:当前不支持对CLOB和BLOB数据类型的处理。
示例1:
返回字符串“17,20,23”中满足正则表达式“[^,]+”的字符串的起始位置,起始位置是第1个字符,标志第3个匹配组,不区分大小写进行检索。
SELECT REGEXP_INSTR('17,20,23','[^,]+',1,3,0,'i') AS STR FROM DUAL; STR --- 7 1 rows fetched.
示例2:
返回字符串“17,20,23”中满足正则表达式“[^,]+”的字符串的结束位置,起始位置是第1个字符,标志第3个匹配组,不区分大小写进行检索。
SELECT REGEXP_INSTR('17,20,23','[^,]+',1,3,1,'i') AS STR FROM DUAL; STR --- 9 1 rows fetched.
REGEXP_SUBSTR
语法:
REGEXP_SUBSTR(str,pattern[,position[,occurrence[,match_param[,subexpr]]]])
功能:返回满足正则表达式的字符串。
入参str是需要进行正则处理的字符串,支持STRING类型和NUMBER类型;入参pattern是进行匹配的正则表达式;入参position是起始位置,表示从第几个字符开始正则表达式匹配(默认为1);入参occurrence表示标识第几个匹配组,默认为1;入参match_param表示模式('i'表示不区分大小写进行检索;'c'表示区分大小写进行检索。默认为'c'。);入参subexpr表示,对存在子表达式的pattern,函数返回匹配第subexpr个子表达式的字符串(默认是0)。返回值是STRING。
说明:
当前不支持对clob和blob数据类型的处理。
示例:
返回字符串“17,20,23”中满足正则表达式“[^,]+”的字符串,起始位置是第1个字符,标志第3个匹配组,不区分大小写进行检索。
SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,3,'i') AS STR FROM DUAL; STR --- 23 1 rows fetched.