求解释下面sql语句REGEXP的用法,我知道后面第一个字符串是啥。后面[^,]+是啥意思,还有最后的i是啥意思

--1、查询使用正则分割后的第一个值,也就是34SELECTREGEXP_SUBSTR('34,56,-23','[^,]+',1,1,'i')ASSTRFROMDUAL... --1、查询使用正则分割后的第一个值,也就是34
SELECT REGEXP_SUBSTR('34,56,-23','[^,]+',1,1,'i') AS STR FROM DUAL;
--结果是:34
--2、查询使用正则分割后的最后一个值,也就是-23
SELECT REGEXP_SUBSTR('34,56,-23','[^,]+',1,3,'i') AS STR FROM DUAL;
--结果是:-23
展开
 我来答
tianqixueyu
2016-08-03 · TA获得超过2700个赞
知道大有可为答主
回答量:1350
采纳率:80%
帮助的人:464万
展开全部
这个问题涉及到REGEXP_SUBSTR函数的参数
REGEXP_SUBSTR函数格式如下:
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
__srcstr :需要进行正则处理的字符串
__pattern :进行匹配的正则表达式
__position :起始位置,从第几个字符开始正则表达式匹配(默认为1)
__occurrence :标识第几个匹配组,默认为1
__modifier :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)

[^,]+就是你的正则表达式,意思是字符串'34,56,-23'中从字符起始位置开始到逗号结束的任意个字符。查询结果有3个匹配组,REGEXP_SUBSTR的第四个参数来区需要第几个匹配组。
追问
[^,]应该是34,+应该是啥,还有i是啥意思。
追答
+的意思是匹配多个,意思就是说[^,]+匹配的结果应该是3个34     56    -23   都符合条件,只是用occurrence参数,表示取第几个匹配结果。
modifier :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
i的意思是不分大小写进行匹配,这是数字字符串没什么用处,如果是字母字符串就有用了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式