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_REPLACE 函数

在字符串中搜索正则表达式模式并将该模式的每个匹配项替换为指定字符串。REGEXP_REPLACE 与 REPLACE 函数相似,只不过前者可让您在字符串中搜索正则表达式模式。有关正则表达式的更多信息,请参阅 POSIX 运算符

REGEXP_REPLACE 与 TRANSLATE 函数REPLACE 函数相似,只不过 TRANSLATE 进行多次单字符替换,REPLACE 一次性将整个字符串替换为其他字符串,而 REGEXP_REPLACE 可让您在字符串中搜索正则表达式模式。

语法

Copy
REGEXP_REPLACE ( source_string, pattern [, replace_string [ , position ] ] )

参数

source_string

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

pattern

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

replace_string

将替换模式的每个匹配项的字符串表达式(如列名称)。默认值是空字符串 ("")。

position

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

返回类型

VARCHAR

如果 patternreplace_string 为 NULL,则返回 NULL。

示例

以下示例删除电子邮件地址中的 @ 和域名。

Copy
select email, regexp_replace( email, '@.*\\.(org|gov|com)$') from users limit 5; email | regexp_replace -----------------------------------+---------------- DonecFri@semperpretiumneque.com | DonecFri mk1wait@UniOfTech.org | mk1wait sed@redshiftemails.com | sed bunyung@integermath.gov | bunyung tomsupporter@galaticmess.org | tomsupporter

以下示例从虚构的 WEBSITES 表中选择 URL 并将域名替换为以下值:internal.company.com/

Copy
select url, regexp_replace(url, '^.*\\.[[:alpha:]]{3}/', 'internal.company.com/') from websites limit 4; url ----------------------------------------------------- | regexp_replace +----------------------------------------------------- example.com/cuisine/locations/home.html | internal.company.com/cuisine/locations/home.html anycompany.employersthere.com/employed/A/index.html | internal.company.com/employed/A/index.html example.gov/credentials/keys/public | internal.company.com/credentials/keys/public yourcompany.com/2014/Q1/summary.pdf | internal.company.com/2014/Q1/summary.pdf

本页内容: