MySQL 5.x 构造regexp_instr函数
类似Oracle中的regexp_instr函数,该函数提供6个参数,如下:
REGEXP_INSTR (source, pattern [, pos [, occurrence [, return_option [, match_type ] ] ] ] )
参数含义:
- source:源字符串
- pattern:正则表达式
- pos:标识从第几个字符开始正则表达式匹配。(默认为1)
- occurrence:标识第几个匹配组。(默认为1)
- return_option:指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。
- match_type:取值范围:i:大小写不敏感;c:大小写敏感;
自定义函数,代码如下:
drop FUNCTION regexp_instr;
DELIMITER //
CREATE FUNCTION regexp_instr(source VARCHAR(4000), pattern VARCHAR(4000), pos INT, occurrence INT, return_option INT, match_type char(1))
RETURNS VARCHAR(4000) DETERMINISTIC BEGIN
DECLARE subStr, usePattern VARCHAR(4000);
DECLARE startPos, prevStartPos, startInc, len, lenInc INT;
DECLARE result