Amazon Redshift
数据库开发人员指南 (API 版本 2012-12-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

REGEXP_SUBSTR 函数

通过搜索正则表达式模式返回从字符串中提取的字符。REGEXP_SUBSTR 与 SUBSTRING 函数 函数相似,只不过前者可让您在字符串中搜索正则表达式模式。有关正则表达式的更多信息,请参阅 POSIX 运算符

语法

REGEXP_SUBSTR ( source_string, pattern [, position [, occurrence [, parameters ] ] ] )

参数

source_string

要搜索的字符串表达式(如列名称)。

pattern

表示 SQL 标准正则表达式模式的字符串文本。

position

指示在 source_string 中开始搜索的位置的正整数。此位置基于字符数而不是字节数,这是为了将多字节字符作为单字符计数。默认值为 1。如果 position 小于 1,则搜索从 source_string 的第一个字符开始。如果 position 大于 source_string 中的字符数量,则结果为空字符串 ("")。

出现

一个正整数,指示要使用的模式的匹配项。REGEXP_SUBSTR 会跳过第一个 occurrence -1 匹配项。默认值为 1。如果 occurrence 小于 1 或大于 source_string 中的字符串,则会忽略搜索,并且结果为 NULL。

parameters

一个或多个字符串,指示函数与模式的匹配方式。可能的值包括:

  • c – 执行区分大小写的匹配。默认情况下,使用区分大小写的匹配。

  • i – 执行不区分大小写的匹配。

  • e – 使用子表达式提取字符串。

    如果 pattern 包含一个子表达式,REGEXP_SUBSTR 会使用 pattern 中的第一个子表达式来匹配子字符串。REGEXP_SUBSTR 仅考虑第一个子表达式;其他子表达式会被忽略。如果模式没有子表达式,REGEXP_SUBSTR 会忽略“e”参数。

返回类型

VARCHAR

示例

以下示例返回电子邮件地址中 @ 字符和域扩展名之间的部分。

select email, regexp_substr(email,'@[^.]*') from users limit 5; email | regexp_substr --------------------------------------------+---------------- Suspendisse.tristique@nonnisiAenean.edu | @nonnisiAenean sed@lacusUtnec.ca | @lacusUtnec elementum@semperpretiumneque.ca | @semperpretiumneque Integer.mollis.Integer@tristiquealiquet.org | @tristiquealiquet Donec.fringilla@sodalesat.org | @sodalesat

本页内容: