

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics，可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间，以实现实时分析。点击[此处](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)了解更多信息。

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

# 正则表达式函数
<a name="regex-functions"></a>

Timestream 中的正则表达式函数 LiveAnalytics 支持 [Java 模式语法](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)。Timestream LiveAnalytics 支持以下正则表达式函数。


| 函数 | 输出数据类型 | 说明 | 
| --- | --- | --- | 
|  regexp\$1extract\$1all(string, pattern)  |  array(varchar)  |  返回字符串中与正则表达式模式相匹配的子字符串。 <pre>SELECT regexp_extract_all('example expect complex', 'ex\w')</pre> 示例结果：`[ exa,exp ]`  | 
|  regexp\$1extract\$1all(string, pattern, group)  |  array(varchar)  |  在字符串中查找所有符合正则表达式模式的匹配项，并返回 [capturing group number](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#gnumber) 组。 <pre>SELECT regexp_extract_all('example expect complex', '(ex)(\w)', 2)</pre> 示例结果：`[ a,p ]`  | 
|  regexp\$1extract(string, pattern)  |  varchar  |  返回字符串中与正则表达式模式相匹配的第一个子字符串。 <pre>SELECT regexp_extract('example expect', 'ex\w')</pre> 示例结果：`exa`  | 
|  regexp\$1extract(string, pattern, group)   |  varchar  |  在字符串中查找第一个符合正则表达式模式的匹配项，并返回 [capturing group number](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#gnumber) 组。 <pre>SELECT regexp_extract('example expect', '(ex)(\w)', 2)</pre> 示例结果：`a`  | 
|  regexp\$1like(string, pattern)   |  布尔值  |  评估正则表达式模式，并判断其是否包含在字符串中。此函数类似于 LIKE 运算符，区别在于模式只需包含在字符串中，而不必匹配所有字符串。换言之，这执行的是包含操作而非匹配操作。您可以使用 ^ 和 \$1 锚定模式来匹配整个字符串。 <pre>SELECT regexp_like('example', 'ex')</pre> 示例结果：`true`  | 
|  regexp\$1replace(string, pattern)  |  varchar  |  从字符串中移除所有匹配正则表达式模式的子字符串实例。 <pre>SELECT regexp_replace('example expect', 'expect')</pre> 示例结果：`example`  | 
|  regexp\$1replace(string, pattern, replacement)   |  varchar  |  将字符串中所有匹配正则表达式模式的子字符串实例替换为替换内容。捕获的分组可在替换时使用 \$1g 表示编号分组，或使用 \$1\$1name\$1 表示命名分组。如需在替换内容中包含美元符号（\$1），可通过反斜杠（\$1\$1）进行转义。 <pre>SELECT regexp_replace('example expect', 'expect', 'surprise')</pre> 示例结果：`example surprise`  | 
|  regexp\$1replace(string, pattern, function)   |  varchar  |  使用函数替换字符串中所有匹配正则表达式模式的子字符串实例。每次匹配都会调用 [lambda expression](https://prestodb.io/docs/current/functions/lambda.html) 函数，并将捕获组作为数组传递。捕获组编号从 1 开始；整个匹配项没有组（如果需要，请用括号将整个表达式括起来）。 <pre>SELECT regexp_replace('example', '(\w)', x -> upper(x[1]))</pre> 示例结果：`EXAMPLE`  | 
|  regexp\$1split(string, pattern)   |  array(varchar)  |  使用正则表达式模式拆分字符串，并返回数组。保留尾随的空字符串。 <pre>SELECT regexp_split('example', 'x')</pre> 示例结果：`[ e,ample ]`  | 