MySQL REGEXP_SUBSTR() 函数17 Mar 2025 | 4 分钟阅读 MySQL 中的 REGEXP_SUBSTR() 函数用于模式匹配。此函数 **从输入字符串中返回与给定正则表达式匹配的子字符串**。如果没有找到匹配项,则返回 NULL。如果表达式或模式为 NULL,则函数返回 NULL。 REGEXP_SUBSTR() 函数与 SUBSTRING 函数相同,但它不像 SUBSTRING 函数那样只提取给定的子字符串,而是允许我们使用正则表达式模式来搜索字符串。 语法以下是在 MySQL 中使用此函数的基本语法 参数解释REGEXP_SUBSTR() 函数参数说明如下: expression: 这是我们将在其中通过正则表达式执行搜索的输入字符串。 pattern: 它代表子字符串的正则表达式模式。 REGEXP_SUBSTR() 函数还使用可选参数,如下所示: pos: 用于指定在字符串中的 expression 的哪个位置开始搜索。如果我们省略此参数,则从位置 1 开始。 occurrence: 用于指定我们要搜索匹配的第几次出现。如果我们省略此参数,则使用第一次出现。 match_type: 这是一个字符串,允许我们细化正则表达式。它使用以下字符执行匹配:
让我们通过几个示例来理解它。 示例以下语句解释了 MySQL 中 REGEXP_SUBSTR 函数的基本示例。 该语句找到匹配项并返回以下输出: ![]() 假设输入字符串中有多个匹配项。在这种情况下,默认情况下将返回匹配子字符串的第一次出现。但是,如果需要,我们也可以指定其他出现次数。请参见下面的语句: 该语句找到匹配项,并返回匹配子字符串的第一次出现,因为我们没有指定任何特定的出现次数。请参见下面的输出: ![]() 如果输入字符串和模式(子字符串)字符串没有匹配项,此函数将返回 NULL 值。请参见下面的示例: 这是输出 ![]() 如果我们想通过指定起始位置来返回子字符串,我们可以按如下方式使用 REGEX_SUBSTR 函数: 在此语句中,我们将起始位置指定为 2。执行此查询后,我们将获得以下输出,可以看到匹配子字符串的第一个位置未返回。 ![]() 让我们看另一个例子来更清楚地理解它: 这是输出 ![]() 如果我们想指定返回匹配子字符串的特定出现次数,我们可以按如下方式使用此函数: 在此示例中,我们将匹配子字符串的起始位置指定为 1,并将匹配子字符串的出现次数指定为 3。因此,我们将获得以下输出: ![]() 这是另一个示例,其中我们将起始位置指定为 2,并将出现次数指定为 1、2 和 3。 此函数将给出以下输出,因为起始位置发生在第一次出现开始之后。因此,此函数将出现次数 2 视为出现次数 1,将出现次数 3 视为出现次数 2。然后没有找到更多出现次数,因此出现次数 3 的结果变为 NULL。 ![]() 我们可以提供一个附加参数来使用匹配类型参数来精炼正则表达式。**例如**,我们可以使用它来验证匹配是否区分大小写或是否包含换行符。请参见下面的示例,我们在其中指定了区分大小写和不区分大小写的匹配: 这是输出 ![]() 下一主题MySQL全文搜索 |
我们请求您订阅我们的新闻通讯以获取最新更新。