tencent cloud

文档反馈

正则式函数

最后更新时间:2024-01-22 10:52:48
    本文介绍正则式函数基本语法及示例。
    日志服务支持如下正则式函数:
    函数名称
    语法
    说明
    regexp_extract_all(x, regular expression)
    提取目标字符串中符合正则表达式的子串,并返回所有子串的合集。
    regexp_extract_all(x, regular expression, n)
    提取目标字符串中符合正则表达式的子串,并返回与目标捕获组匹配的子串合集。
    regexp_extract(x, regular expression)
    提取并返回目标字符串中符合正则表达式的第一个子串。
    regexp_extract(x, regular expression, n)
    提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的第一个子串。
    regexp_like(x, regular expression)
    判断目标字符串是否符合正则表达式。
    regexp_replace(x, regular expression)
    删除目标字符串中符合正则表达式的子串,返回未被删除的子串。
    regexp_replace(x, regular expression, replace string)
    替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。
    regexp_split(x, regular expression)
    使用正则表达式分割目标字符串,返回被分割后的子串合集。

    regexp_extract_all 函数

    regexp_extract_all 函数用于提取目标字符串中符合正则表达式的子串合集。

    语法

    提取目标字符串中符合正则表达式的子串,并返回所有子串的合集。
    regexp_extract_all(x, regular expression)
    提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的子串合集。
    regexp_extract_all(x, regular expression, n)

    参数说明

    参数
    说明
    x
    参数值为 varchar 类型。
    regular expression
    包含捕获组的正则表达式。例如(\\d)(\\d)(\\d)表示三个捕获组 。
    n
    第 n 个捕获组。n 为从1开始的整数。

    返回值类型

    array 类型。

    示例

    提取 http_protocol 字段中所有的数字。
    查询和分析语句
    * | SELECT regexp_extract_all(http_protocol, '\\d+')
    查询和分析结果
    [1,1]

    regexp_extract 函数

    regexp_extract 函数用于提取目标字符串中符合正则表达式的第一个子串。

    语法

    提取并返回目标字符串中符合正则表达式的第一个子串。
    regexp_extract(x, regular expression)
    提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的第一个子串。
    regexp_extract(x, regular expression, n)

    参数说明

    参数
    说明
    x
    参数值为 varchar 类型。
    regular expression
    包含捕获组的正则表达式。例如(\\d)(\\d)(\\d)表示三个捕获组 。
    n
    第 n 个捕获组。n 为从1开始的整数。

    返回值类型

    varchar 类型。

    示例

    示例1:提取 http_protocol 字段值中的第一个数字。

    查询和分析语句
    * | SELECT regexp_extract_all(http_protocol, '\\d+')
    查询和分析结果
    1

    示例2:提取 request_uri 字段值中的文件部分,并统计各个文件的访问次数。

    查询和分析语句
    * | SELECT regexp_extract(request_uri, './(index.)', 1) AS file, count(*) AS count GROUP BY file
    查询和分析结果

    regexp_like 函数

    regexp_like 函数用于判断目标字符串是否符合正则表达式。

    语法

    regexp_like(x, regular expression)

    参数说明

    参数
    说明
    x
    参数值为 varchar 类型。
    regular expression
    正则表达式。

    返回值类型

    boolean 类型。

    示例

    判断 server_protocol 字段值中是否包含数字。
    查询和分析语句
    * | select regexp_like(server_protocol, '\\d+')
    查询和分析结果
    TRUE

    regexp_replace 函数

    regexp_replace 函数用于删除或替换目标字符串中符合正则表达式的子串。

    语法

    删除目标字符串中符合正则表达式的子串,返回未被删除的子串。
    regexp_replace(x, regular expression)
    替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。
    regexp_replace(x, regular expression, replace string)

    参数说明

    参数
    说明
    x
    参数值为 varchar 类型。
    regular expression
    正则表达式。
    replace string
    用于替换的子串.

    返回值类型

    string 类型。

    示例

    删除 server_protocol 字段值中的版本号部分,并统计不同通信协议对应的请求数量。
    查询和分析语句
    * | select regexp_replace(server_protocol, '.\\d+') AS server_protocol, count(*) AS count GROUP BY server_protocol
    查询和分析结果
    server_protocol
    count
    HTTP
    357

    regexp_split 函数

    regexp_split 函数用于分割目标字符串,返回被分割后的子串合集。

    语法

    regexp_split(x, regular expression)

    参数说明

    参数
    说明
    x
    参数值为 varchar 类型。
    regular expression
    正则表达式。

    返回值类型

    array类型。

    示例

    使用正斜线(/)分割 server_protocol 字段的值。
    查询和分析语句
    * | select regexp_split(server_protocol, '/')
    查询和分析结果
    ["HTTP","1.1"]
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持