跳到主要内容

REGEXP_INSTR

声明

REGEXP_INSTR(expr, pat [, pos [, occurrence [, return_option [, match_type ]]]])

说明

返回表达式 expr 中满足表达式 pat 的子字符串的起始位置。如果不存在满足匹配规则的子字符串则返回 0,如果 exprpatNULL,则该函数也返回 NULL。返回值所表示的位置从 1 开始。

  • pos 表示从表达式 expr 的第几个字符开始搜索,缺省为 1

  • occurrence 表示 expr 中第几次出现 pat 的位置,缺省为 1

  • return_option 表示返回值的类型,缺省为 0

    • 取值为 0 时,表示 REGEXP_INSTR() 返回匹配到的第一个字符的位置。

    • 取值为 1 时,表示 REGEXP_INSTR() 返回匹配到的最后一个字符的位置。

  • match_type 表示匹配规则。有关匹配规则的详细信息,请参见 REGEXP_LIKE

示例

SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean');
+-----------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean') |
+-----------------------------------------------+
| 1 |
+-----------------------------------------------+
1 row in set (0.001 sec)

SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean',2);
+-------------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean',2) |
+-------------------------------------------------+
| 12 |
+-------------------------------------------------+
1 row in set (0.001 sec)

SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2);
+---------------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2) |
+---------------------------------------------------+
| 12 |
+---------------------------------------------------+
1 row in set (0.001 sec)

SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2,1);
+-----------------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2,1) |
+-----------------------------------------------------+
| 17 |
+-----------------------------------------------------+
1 row in set (0.001 sec)