Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

REGEXP_INSTR 函数

在字符串中搜索正则表达式模式并返回指示匹配子字符串的开始位置的整数。如果未找到匹配项,此函数将返回 0。REGEXP_INSTR 与 POSITION 函数相似,只不过前者可让您在字符串中搜索正则表达式模式。有关正则表达式的更多信息,请参阅 POSIX 运算符

语法

Copy
REGEXP_INSTR ( source_string, pattern [, position ] )

参数

source_string

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

pattern

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

position

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

返回类型

整数

示例

以下示例搜索作为域名的开头的 @ 字符并返回第一个匹配项的开始位置。

Copy
select email, regexp_instr(email,'@[^.]*') from users limit 5; email | regexp_instr --------------------------------------+------------- Cum@accumsan.com | 4 lorem.ipsum@Vestibulumante.com | 12 non.justo.Proin@ametconsectetuer.edu | 16 non.ante.bibendum@porttitortellus.org | 18 eros@blanditatnisi.org | 5 (5 rows)

以下示例搜索单词 Center 的变体并返回第一个匹配项的开始位置。

Copy
select venuename, regexp_instr(venuename,'[cC]ent(er|re)$') from venue where regexp_instr(venuename,'[cC]ent(er|re)$') > 0 limit 5; venuename | regexp_instr ----------------------+------------- The Home Depot Center | 16 Izod Center | 6 Wachovia Center | 10 Air Canada Centre | 12 United Center | 8

本页内容: