# RegexMatch

# 函数简介

本函数用于正则表达式匹配文本中的具体内容并返回。

函数名: REGEXMATCH

输入序列: 仅支持单个输入序列,类型为 TEXT。

参数:

  • regex: 匹配的正则表达式,支持所有Java正则表达式语法,比如\d+\.\d+\.\d+\.\d+将会匹配任意IPv4地址.
  • group: 输出的匹配组序号,根据java.util.regex规定,第0组为整个正则表达式,此后的组按照左括号出现的顺序依次编号。 如A(B(CD))中共有三个组,第0组A(B(CD)),第1组B(CD)和第2组CD

输出序列: 输出单个序列,类型为TEXT。

提示: 空值或无法匹配给定的正则表达式的数据点没有输出结果。

# 使用示例

输入序列:

+-----------------------------+-------------------------------+
|                         Time|                root.test.d1.s1|
+-----------------------------+-------------------------------+
|2021-01-01T00:00:01.000+08:00|        [192.168.0.1] [SUCCESS]|
|2021-01-01T00:00:02.000+08:00|       [192.168.0.24] [SUCCESS]|
|2021-01-01T00:00:03.000+08:00|           [192.168.0.2] [FAIL]|
|2021-01-01T00:00:04.000+08:00|        [192.168.0.5] [SUCCESS]|
|2021-01-01T00:00:05.000+08:00|      [192.168.0.124] [SUCCESS]|
+-----------------------------+-------------------------------+

用于查询的SQL语句:

select regexmatch(s1, "regex"="\d+\.\d+\.\d+\.\d+", "group"="0") from root.test.d1

输出序列:

+-----------------------------+----------------------------------------------------------------------+
|                         Time|regexmatch(root.test.d1.s1, "regex"="\d+\.\d+\.\d+\.\d+", "group"="0")|
+-----------------------------+----------------------------------------------------------------------+
|2021-01-01T00:00:01.000+08:00|                                                           192.168.0.1|
|2021-01-01T00:00:02.000+08:00|                                                          192.168.0.24|
|2021-01-01T00:00:03.000+08:00|                                                           192.168.0.2|
|2021-01-01T00:00:04.000+08:00|                                                           192.168.0.5|
|2021-01-01T00:00:05.000+08:00|                                                         192.168.0.124|
+-----------------------------+----------------------------------------------------------------------+