REGEX_REPLACE - Amazon Kinesis Data Analytics

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

替换正则表达式的字符串与原始字符串相匹配。如果 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"

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

Table showing stock data with columns for time, ticker symbol, sector, change, and price.

注意

REGEX_REPLACE 不是 SQL: 2008 标准的一部分。它是 Amazon Kinesis Data Analytics Studio

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