操作符函数
更新时间:2025-11-28
操作符函数
简介
本文介绍操作符函数的语法规则,包括参数解释、函数示例等。
op_if 函数
函数定义
根据条件判断,返回相应的值。
语法描述
Text
1op_if(condition, expression1, expression2)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| condition | 条件表达式 | Any | 是 | - | - |
| expression1 | 条件为 True 时,返回此参数值 | Any | 是 | - | - |
| expression2 | 条件为 False 时,返回此参数值 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"content": "hello"}
加工规则:
Text
1e_set("test_if", op_if(v("content"),"still origion content","replace this"))
加工结果:
Text
1{"content": "hello", "test_if": "still origion content"}
op_ifnull 函数
函数定义
返回第一个值不为None的表达式的值。
语法描述
Text
1op_ifnull(expression1, expression2, ....)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| expression1 | 第一个表达式 | Any | 是 | - | - |
| expression2 | 第二个表达式 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"test_if": "hello", "escape_name": "Etl"}
加工规则:
Text
1e_set("test_ifnull", op_ifnull(v("escape_name"),v("test_if")))
加工结果:
Text
1{"test_if": "hello", "escape_name": "Etl", "test_ifnull": "Etl"}
- 示例2
原始日志:
Text
1{"test_if": "hello", "escape_name": "Etl"}
加工规则:
Text
1e_set("test_ifnull", op_ifnull(v("unknown"),v("test_if")))
加工结果:
Text
1{"test_if": "hello", "escape_name": "Etl", "test_ifnull": "hello"}
op_coalesce 函数
函数定义
返回第一个值不为None的表达式的值。
与op_ifnull函数的参数说明和示例类似。
op_and 函数
函数定义
使用逻辑运算and,对任意类型值进行真假判断,所有参数值为真时返回True。
语法描述
Text
1op_and(expression1, expression2, ...)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| expression1 | 第一个表达式 | Any | 是 | - | - |
| expression2 | 第二个表达式 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"number1": true, "number2": true}
加工规则:
Text
1e_set("op_and", op_and(v("number1"),v("number2")))
加工结果:
Text
1{"number1": true, "number2": true, "op_and": true}
op_or 函数
函数定义
使用逻辑运算or,对任意类型值进行真假判断。当任意表达式的值为真时返回True,所有表达式值为假时返回False。
语法描述
Text
1op_or(expression1, expression2, ...)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| expression1 | 第一个表达式 | Any | 是 | - | - |
| expression2 | 第二个表达式 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"number1": true, "number2": true}
加工规则:
Text
1e_set("op_or", op_or(v("number1"),v("number2")))
加工结果:
Text
1{"number1": true, "number2": true, "op_or": true}
op_not 函数
函数定义
使用逻辑运算not,对任意类型值进行真假判断,返回表达式值的反义布尔值。
语法描述
Text
1op_not(expression)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| expression | 表达式 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"number": true}
加工规则:
Text
1e_set("op_not", op_not(v("number1")))
加工结果:
Text
1{"number": true, "op_not": false}
op_len 函数
函数定义
计算文本字符串中的字符数,可用于字符串和其他返回元组、列表、字典的表达式。
语法描述
Text
1op_len(value)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| value | 运算值 字符串、元组、列表或字典等值 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"@raw": "I,love,this,world"}
加工规则:
Text
1e_set("op_len",op_len(v("@raw")))
加工结果:
Text
1{"@raw": "I,love,this,world", "op_len": 17}
op_in 函数
函数定义
判断字符串、元组、列表或字典中是否包含特定元素,返回True或False。
语法描述
Text
1op_in(value1, value2)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| value1 | 运算值 字符串、元组、列表或字典等值 | Any | 是 | - | - |
| value2 | 判断的元素 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"list": [1, 2, 3], "num2": 2}
加工规则:
Text
1e_set("op_in",op_in(v("list"),v("num2")))
加工结果:
Text
1{"list": [1, 2, 3], "num2": 2, "op_in": true}
op_not_in 函数
函数定义
判断字符串、元组、列表或字典中是否不包含特定元素,返回True或False。
语法描述
Text
1op_not_in(value1, value2)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| value1 | 运算值 字符串、元组、列表或字典等值 | Any | 是 | - | - |
| value2 | 判断的元素 | Any | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"list": [1, 2, 3], "num2": 2}
加工规则:
Text
1e_set("op_not_in",op_not_in(v("list"),v("num2")))
加工结果:
Text
1{"list": [1, 2, 3], "num2": 2, "op_not_in": false}
op_index 函数
函数定义
根据字符串、数组、元组的下标返回其对应的元素。
语法描述
Text
1op_index(value, index)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| value | 运算值 字符串、元组或列表等值 | String, Tuple, Array | 是 | - | - |
| index | 需要传入的字符串、数组或元组的下标 | Integer | 是 | - | - |
示例
- 示例1
原始日志:
Text
1{"list": [1, 2, 3]}
加工规则:
Text
1e_set("op_index",op_index(v("list"),1)))
加工结果:
Text
1{"list": [1, 2, 3], "op_index": 1}
- 示例2
原始日志:
Text
1{"word": "love"}
加工规则:
Text
1e_set("op_index",op_index(v("word"),0))
加工结果:
Text
1{"word": "love", "op_index": "l"}
op_slice 函数
函数定义
对指定字符串、数组、元组进行截取。
语法描述
Text
1op_slice(value, start, end=None, step=None)
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| value | 运算值 字符串、元组或列表等值 | String, Tuple, Array | 是 | - | - |
| start | 截取的起始位置 | Integer | 否 | 0 | - |
| end | 截取的结束位置,不包含该位置 | Integer | 否 | len(value) | - |
| step | 每次截取的长度 | Integer | 否 | 1 | - |
示例
- 示例1
原始日志:
Text
1{"list": [1, 2, 3]}
加工规则:
Text
1e_set("op_slice",op_slice(v("list"), 1))
加工结果:
Text
1{"list": [1, 2, 3], "op_slice": [2, 3]}
- 示例2
原始日志:
Text
1{"word": "love"}
加工规则:
Text
1e_set("op_slice",op_slice(v("word"), 0, 4, 2))
加工结果:
Text
1{"word": "love", "op_slice": "lv"}
