You need to enable JavaScript to run this app.
导航

正则式函数

最近更新时间2024.01.30 10:05:14

首次发布时间2024.01.22 17:18:37

本文介绍日志服务支持的正则式函数语法及常见场景的使用示例。

注意

日志服务产品架构升级,支持更丰富的检索分析功能。

  • 如果控制台提示新一代架构正式发布信息,表示您使用的是 2.0 架构,可参考本文档使用相关功能。
  • 如果控制台未提示新一代架构正式发布信息,表示您使用的是 1.0 架构,可参考检索分析(1.0 架构)中的检索概述等文档使用相关功能。

关于 1.0 架构与 2.0 架构的具体说明,请参考日志服务架构升级通知

函数列表

说明

在日志服务分析语句(SQL 语句)中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。例如'time' 代表字符串,time"time" 代表字段名或列名。

函数名称

语法

说明

REGEXP_EXTRACT_ALL 函数

REGEXP_EXTRACT_ALL(KEY, regular_expression)

提取与指定正则表达式匹配的子字符串,并返回所有子字符串的合集。

REGEXP_EXTRACT_ALL(KEY, regular_expression, n)

提取与指定正则表达式匹配的子字符串,并返回与目标捕获组匹配的子字符串合集。

REGEXP_EXTRACT 函数

REGEXP_EXTRACT(KEY, regular_expression)

提取与指定的正则表达式匹配的第一个子字符串。

REGEXP_EXTRACT(KEY, regular_expression, n)

提取与指定的正则表达式匹配的子字符串,然后返回与目标捕获组匹配的第一个子字符串。

REGEXP_LIKE 函数

REGEXP_LIKE(KEY, regular_expression)

判断字段值是否与指定的正则表达式匹配。

REGEXP_REPLACE 函数

REGEXP_REPLACE(KEY, regular_expression)

删除与指定正则表达式匹配的子字符串,然后返回未被删除的字符串。

REGEXP_REPLACE(KEY, regular_expression, replace_string)

将与指定正则表达式匹配的子字符串替换为其他字符串,然后返回替换后的字符串。

REGEXP_EXTRACT_ALL 函数

REGEXP_EXTRACT_ALL 函数用于提取与指定正则表达式匹配的子字符串。

函数语法

  • 语法格式

    • 提取与指定正则表达式匹配的子字符串,并返回所有子字符串的合集。

      REGEXP_EXTRACT_ALL(KEY, regular_expression)
      
    • 提取与指定正则表达式匹配的子字符串,并返回与目标捕获组匹配的子字符串合集。

      REGEXP_EXTRACT_ALL(KEY, regular_expression, n)
      
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Varchar 类型。

    regular_expression

    包含捕获组的正则表达式。例如 (\d)(\d)(\d) 表示三个捕获组。

    n

    第 n 个捕获组。n 为从 1 开始的整数。

  • 返回值说明
    返回值为 Array 类型。

函数示例

  • 示例1

    • 场景
      提取 url_test 字段值中所有的数字。

    • 日志样例

    • 检索和分析语句

      *| SELECT REGEXP_EXTRACT_ALL(url_test, '\d+')
      
    • 检索和分析结果

  • 示例2

    • 场景
      提取 url_test 字段值中的 age 部分,然后统计带 age 的日志条数。

    • 检索和分析语句

      *| SELECT REGEXP_EXTRACT_ALL(url_test, '(age)',1) AS age, COUNT(*) AS count GROUP BY age
      
    • 日志样例

    • 检索和分析结果
      图片

REGEXP_EXTRACT 函数

REGEXP_EXTRACT 函数用于提取与指定的正则表达式匹配的第一个子字符串。

函数语法

  • 语法格式

    • 提取与指定的正则表达式匹配的第一个子字符串。

      REGEXP_EXTRACT(KEY, regular_expression)
      
    • 提取与指定的正则表达式匹配的子字符串,然后返回与目标捕获组匹配的第一个子字符串。

      REGEXP_EXTRACT(KEY, regular_expression, n)
      
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Varchar 类型。

    regular_expression

    包含捕获组的正则表达式。例如(\d)(\d)(\d)表示三个捕获组。

    n

    第 n 个捕获组。n 为从 1 开始的整数。

  • 返回值说明
    返回值为 Varchar 类型。

函数示例

  • 示例1

  • 场景
    提取url_test字段值中的第一个数字。

  • 日志样例

  • 检索和分析语句

    *|SELECT REGEXP_EXTRACT(url_test, '\d+')
    
  • 检索和分析结果

  • 示例2

    • 场景
      提取url_test字段值中的第一个age部分

    • 日志样例

    • 检索和分析语句

      * | SELECT REGEXP_EXTRACT(url_test, '.*(age.*)&', 1) AS age, count(*) AS count GROUP BY age
      
    • 检索和分析结果

  • 示例3

    • 场景
      提取url_test字段值中的冒号(:)和数字部分。

    • 日志样例

    • 检索和分析语句

      * | SELECT REGEXP_EXTRACT(url_test, ':\d+')     
      
    • 检索和分析结果

REGEXP_LIKE 函数

REGEXP_LIKE 函数用于判断字段值是否与指定的正则表达式匹配。

函数语法

  • 语法格式

    REGEXP_LIKE(KEY, regular_expression)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Varchar 类型。

    regular_expression

    正则表达式。

  • 返回值说明
    返回值为 Boolean 类型。

函数示例

  • 场景
    判断 url_test 字段值中是否包含数字。

  • 日志样例

  • 检索和分析语句

    *| SELECT REGEXP_LIKE(url_test, '\d+')
    
  • 检索和分析结果

REGEXP_REPLACE 函数

REGEXP_REPLACE 函数用于删除或替换与指定正则表达式匹配的子字符串。

函数语法

  • 语法格式

    • 提取与指定正则表达式匹配的子字符串,并返回所有子字符串的合集。

      REGEXP_REPLACE(KEY, regular_expression)
      
    • 提取与指定正则表达式匹配的子字符串,并返回与目标捕获组匹配的子字符串合集。

      REGEXP_REPLACE(KEY, regular_expression, replace_string)
      
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Varchar 类型。

    regular_expression

    正则表达式。

    replace_string

    用于替换的子字符串。

  • 返回值说明
    返回值为 Varchar 类型。

函数示例

  • 示例1
    • 场景
      提取 Query 字段值中所有的数字。

    • 日志样例
      图片

    • 检索和分析语句

      *| SELECT REGEXP_EXTRACT_ALL(Query, '\d+')
      
    • 检索和分析结果
      图片