occurrence指的是字符串中出现第n组的匹配结果给你看看就明白了SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 1, 'i') FROM DUAL;结果:12345678 该结果为第一个1234567890中的12345678SELECT REGEXP_SUBSTR('12345678901234567890',...
显示全部occurrence指的是字符串中出现第n组的匹配结果
给你看看就明白了
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 1, 'i')
FROM DUAL;
结果:12345678 该结果为第一个1234567890中的12345678
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 2, 'i')
FROM DUAL;
结果:12345678 该结果是第二个1234567890中的12345678 也就是说第二个匹配到的结果
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 3, 'i')
FROM DUAL;
结果:NULL
另外你说的第六个参数,指的是正则表达式中的分组
比如(123)(4(56)(78))
第一组是(123)
第二组是(4(56)(78))
第三组是(56)
第四组是(78)
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 1, 'i',1) FROM DUAL;
123
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 1, 'i',2) FROM DUAL;
45678
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 1, 'i',3) FROM DUAL;
56
专家也是人,专家也有工作~ 没注意遗留问题,见谅啊
收起