📜  MySQL regexp_substr()函数(1)

📅  最后修改于: 2023-12-03 15:33:01.827000             🧑  作者: Mango

MySQL regexp_substr()函数

如果您需要从文本字符串中提取部分文本,那么 MySQL regexp_substr() 函数很可能是您要找的。该函数可让您使用正则表达式模式指定文本的子字符串,并从原始文本中提取这些子字符串。

语法

MySQL regexp_substr() 函数的基本语法如下:

regexp_substr(expr, pat, pos, occurrence, [match_type])

函数的每个参数的含义如下:

  • expr:要从中提取子字符串的源字符串;

  • pat:带正则表达式模式的字符串,该模式指定您要提取的子字符串;

  • pos:要在源字符串中开始搜索的位置;

    注意:索引值从 1 开始,而不是从 0 开始。

  • occurrence(可选):指定要提取的匹配项的位置或出现的次数。若未提供此参数,则默认提取第一次匹配到的子字符串。如果此参数是负数,则返回最后匹配到的子字符串;

  • [match_type](可选):指定要用于搜索子字符串的匹配类型。该参数的默认值为 1。可选值包择 0(不区分大小写地搜索)、1(区分大小写地搜索)和 2(区分大小写和重音符号搜索)。

示例

下面是一个 MySQL regexp_substr() 函数的示例:

SELECT regexp_substr('12,34-56:78', '[^,;:-]+', 1, 1) AS text;

该查询语句的输出为:

| text |
|------|
| 12   |

该查询检索源字符串 12,34-56:78 中的第一个非逗号、分号、短横线或冒号字符。如果源字符串没有子字符串匹配正则表达式模式,则返回空字符串。

实战应用

MySQL regexp_substr() 函数可应用于多种场景中。例如:

  • 您可以使用该函数从电子邮件地址中提取用户名或域名;
  • 您可以使用该函数从 URL 中提取主机名。

以上给程序员的 MySQL regexp_substr() 函数的介绍。