Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解
REGEXP_SUBSTR函数格式如下:
functionREGEXP_SUBSTR(string,pattern,position,occurrence,modifier)
string:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从第几个字符开始正则表达式匹配(默认为1)
occurrence:标识第几个匹配组,默认为1
modifier:模式(‘i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c')
SELECTREGEXP_SUBSTR('123,,,ABC,!@#,,,','[^,]+')FROMDUAL;
取分割后的第一个值
结果:123
SELECTREGEXP_SUBSTR('123,,,ABC,!@#,,,','[^,]+',2)FROMDUAL;
从第二个字符开始匹配,取分割后的第一个值
结果:23
SELECTREGEXP_SUBSTR('123,,,ABC,!@#,,,','[^,]+',1,2)FROMDUAL;
取分割后的第二个值
结果:ABC
SELECTREGEXP_SUBSTR('123,,,ABaC,!@#,,,','[^a]+',1,2,'i')FROMDUAL;
不区分大小写分割后的第二个值
结果:B
SELECTREGEXP_SUBSTR('123,,,ABaC,!@#,,,','[^a]+',1,2,'c')FROMDUAL;
区分大小写分割后的第二个值
结果:C,!@#,,,
SELECTREGEXP_SUBSTR('123,,,ABC,!@#,,,','[^,]+',1,LEVEL) FROMDUAL CONNECTBYREGEXP_SUBSTR('123,,,ABC,!@#,,,','[^,]+',1,LEVEL)ISNOTNULL;
取分割后的所有结果(level oracle关键字,表示查询深度,用来实现层级查询)
结果:
123
ABC
!@#
总结
以上所述是小编给大家介绍的Oracle通过正则表达式分割字符串REGEXP_SUBSTR的代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!