REGEX_REPLACE - Amazon Kinesis Data Analytics
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

REGEX_REPLACE

REGEX_REPLACE 将子字符串替换为备用子字符串。它返回以下 Java 表达式的值。

java.lang.String.replaceAll(regex, replacement)

语法

REGEX_REPLACE(original VARCHAR(65535), regex VARCHAR(65535), replacement VARCHAR(65535), startPosition int, occurence int) RETURNS VARCHAR(65535)

参数

original

要对其执行正则表达式操作的字符串。

regex

要匹配的正则表达式。如果 regex 的编码与 original 的编码不匹配,则将向错误流写入错误。

replacement

用于替换 original 字符串中的 regex 匹配项的字符串。如果 replacement 的编码与 originalregex 的编码不匹配,则将向错误流写入错误。

startPosition

要搜索的 original 字符串中的第一个字符。如果 startPosition 小于 1,则将向错误流写入错误。如果 startPosition 大于 original 的长度,则将返回 original

occurence

要替换的与 regex 表达式匹配的字符串数量。如果 occurence 为 0,则将替换所有匹配 regex 的子字符串。如果 occurence 小于 0,则将向错误流写入错误。

示例

示例数据集

以下示例基于示例股票数据集,后者是《Amazon Kinesis Analytics 开发人员指南》 中的入门练习的一部分。

要运行每个示例,您需要具有示例股票代码输入流的 Amazon Kinesis Analytics 应用程序。要了解如何创建 Analytics 应用程序和配置示例股票代码输入流,请参阅《Amazon Kinesis Analytics 开发人员指南》 中的入门练习

具有以下架构的示例股票数据集。

(ticker_symbol VARCHAR(4), sector VARCHAR(16), change REAL, price REAL)

示例 1:将源字符串中的所有字符串值替换为新值

在此示例中,如果 sector 字段中的所有字符串都与正则表达式匹配,则它们都将被替换。

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( ticker_symbol VARCHAR(4), SECTOR VARCHAR(24), CHANGE REAL, PRICE REAL); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM TICKER_SYMBOL, REGEX_REPLACE(SECTOR, 'TECHNOLOGY', 'INFORMATION TECHNOLOGY', 1, 0); CHANGE, PRICE FROM "SOURCE_SQL_STREAM_001"

上一示例输出的流与以下内容类似。

备注

REGEX_REPLACE 不是 SQL:2008 标准的一部分。它是一个 Amazon Kinesis Data Analytics 流式 SQL 扩展。

如果所有参数都为 null,则 REGEX_REPLACE 返回 null