全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

正则表达式函数

最近更新时间:2023-04-26 15:40:34

regex_select函数

函数介绍

根据正则表达式提取符合条件的值。

语法描述

regex_select(value, expr, mi=0, gi=0)

参数说明

参数名称 参数类型 是否必填 参数描述
key any 需要匹配的值
expr string 正则表达式
mi number 表示匹配到的第几个表达式,0表示第一个。默认是0
gi number 表示匹配到的第几个分组,0表示第一个。默认是0

示例1

从字段content中获取第一个满足正则表达式的值,并存入新字段selected中

原始日志

{"content":"123abc456edf789"}

加工规则

set("selected",regex_select(v("content"),"\\d+"))

加工结果

{"content":"123abc456edf789","selected":"123"}

示例2

从字段content中获取第二个满足正则表达式的值,并存入新字段selected中。

原始日志

{"content":"123abc456edf789"}

加工规则

set("selected",regex_select(v("content"),"\\d+",mi=1))

加工结果

{"content":"123abc456edf789","selected":"456"}

示例3
从字段content中获取第二个满足正则表达式的第二组值,并存入新字段selected中。

原始日志

{"content":"123abc456edf789"}

加工规则

set("selected",regex_select(v("content"),"(\\d+)([a-z]+)",mi=1,gi=1))

加工结果

{"content":"123abc456edf789","selected":"edf"}

regex_match函数

函数介绍

判断是否匹配正则表达式。

语法描述

regex_match(value, expr, full=false)

参数说明

参数名称 参数类型 是否必填 参数描述
value any 需要匹配的值
expr string 正则表达式
full bool 是否完全匹配正则表达式,默认false

示例1

字段content中是否包含数字

原始日志

{"content":"123abc456edf789"}

加工规则

set("matched",regex_match(v("content"),"\\d+"))

加工结果

{"content":"123abc456edf789","matched":true}

示例2

字段content中是否都是数字

原始日志

{"content":"123abc456edf789"}

加工规则

set("matched",regex_match(v("content"),"\\d+",full=true))

加工结果

{"content":"123abc456edf789","matched":false}

regex_split函数

函数介绍

使用正则表达式将字符串分裂为数组。

语法描述

regex_split(value, expr, maxsplit=0)

参数说明

参数名称 参数类型 是否必填 参数描述
value any 需要分裂的值
expr string 正则表达式
maxsplit number 最大分裂次数。0表示全部分裂,1表示只分裂第一个匹配,剩余部分不再分裂。

示例
通过逗号分裂content字段的值,将结果作为新字段split的值

原始日志

{"content":"a,b,c,d"}

加工规则

set("split",regex_split(v("content"),","))

加工结果

{"content":"a,b,c,d","split":["a","b","c","d"]}

regex_replace函数

函数介绍

根据正则表达式替换字符串中的指定字符。

语法描述

regex_replace(value, expr, replace="", count=0)

参数说明

参数名称 参数类型 是否必填 参数描述
value any 需要被替换的值
expr string 正则表达式
replace string 替换后的新字符。可以使用捕获组。 \1表示第一个分组;\2表示第二个分组;依此类推。默认空字符串
count number 表示替换次数。0表示替换所有。默认是0

示例1
将字段content中的所有数字替换成*。

原始日志

{"content":"123abc456edf789"}

加工规则

set("replaced",regex_replace(v("content"),"\\d",replace="*"))

加工结果

{"content":"123abc456edf789","replaced":"***abc***edf***"}

示例2
将字段content中的第一个数字替换成*。

原始日志

{"content":"123abc456edf789"}

加工规则

set("replaced",regex_replace(v("content"),"\\d",replace="*",count=1))

加工结果

{"content":"123abc456edf789","replaced":"*23abc456edf789"}

regex_findall函数

函数介绍

根据正则表达式获取符合条件的值,将其组成一个数组返回。

语法描述

regex_findall(value, expr)

参数说明

参数名称 参数类型 是否必填 参数描述
value any 需要匹配的值
expr string 正则表达式

示例1
从content字段中获取所有字母的列表。

原始日志

{"content":"123abc456edf789"}

加工规则

set("found",regex_findall(v("content"),"[a-z]+"))

加工结果

{"content":"123abc456edf789","found":["abc","edf"]}
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈