MySQL REGEXP_INSTR 函数
MySQL 的 REGEXP_INSTR() 函数用于模式匹配。它是一种函数,通过匹配给定的字符串,返回子字符串的索引值。 如果未找到匹配项,该函数返回 0。如果找到匹配项,则返回 1。如果表达式或模式为空,它返回 NULL。在这里,字符的索引从 1 开始。
语法
使用这个函数的基本语法如下: 在 MySQL 中使用该函数:
REGEXP_INSTR(expression, patterns, optional parameters);
参数解释
REGEXP_INSTR() 函数参数的解释如下:
expression: 它是一个字符串,我们将通过正则表达式参数和函数进行搜索。
patterns: 它表示用于匹配的正则表达式字符。
REGEXP_INSTR() 函数使用以下各种可选参数:
位置: 它用于指定开始搜索的表达式中的位置。如果我们不指定此参数,默认为1。
出现次数: 它用于指定要查找的匹配的出现次数。如果我们不指定此参数,默认为1。
返回选项: 它用于指定要返回的匹配的子字符串的位置类型。如果其值为0,表示函数返回匹配的子字符串的第一个字符的位置。如果其值为1,它将返回匹配字符串之后的位置。如果我们不指定此参数,默认为1。
匹配类型: 它是一个字符串,使用以下可能的字符进行匹配。
- c:表示区分大小写的匹配。
- i:表示不区分大小写的匹配。
- m:表示多行模式,允许字符串中的行结束符。默认情况下,此函数在字符串的开头和结尾匹配行结束符。
- n:用于修改“.”(点)字符以匹配行结束符。
- u:表示仅Unix换行符。
让我们通过各种示例来理解它。
示例
此语句返回子字符串“BCA”在表达式中的起始索引。如果我们执行该语句,将返回1,该字符串的第一个索引。这是因为在这里,我们没有指定任何可选参数。
mysql> SELECT REGEXP_INSTR ('BCA MCA PGDCA BBA MBA BCA', 'BCA') AS start_index;
查看下面的输出:
在这个语句中,我们 通过修改带有可选参数位置和出现次数的查询 来 定位模式字符串’BCA’的第二次出现 。
mysql> SELECT REGEXP_INSTR ('BCA MCA PGDCA BBA MBA BCA', 'BCA', 1, 2, 0) AS BCA_index_2;
看下面的输出:
在这个语句中,我们使用了 return_option 参数。当我们想要获取一些以某种标识符为前缀的信息时,这个参数是非常有用的。
mysql> SELECT REGEXP_INSTR ('BCA MCA PGDCA BBA MBA BCA', 'BCA', 1, 1, 1) AS post_index;
查看下方输出: