Nifi常用表达式文档

    TineAine

    于 2021-09-20 09:54:03 发布

    1269
    收藏 5
    分类专栏: 笔记 Java 框架 文章标签: java nifi
    版权

    笔记
    同时被 3 个专栏收录
    49 篇文章0 订阅
    订阅专栏

    Java
    53 篇文章0 订阅
    订阅专栏

    框架
    33 篇文章0 订阅
    订阅专栏
    文章目录

    表达式函数
    字符串
    大小写转换
    toUpper
    描述
    参数
    返回值
    案例
    toLower
    描述
    参数
    返回值
    案例
    去除字符串前后的空格
    trim
    描述
    参数
    返回值
    案例
    字符串截取
    substring
    描述
    参数
    返回值
    注意
    案例
    案例解释
    substringBefore/substringBeforeLast
    描述
    参数
    返回值
    注意
    案例
    案例解释
    substringAfter/substringAfterLast
    描述
    参数
    返回值
    注意
    案例
    案例解释
    附加与追加
    append/prepend
    描述
    参数
    返回值
    注意
    案例
    案例解释
    字符串替换
    replace/replaceFirst
    描述
    参数
    返回值
    注意
    案例
    案例解释
    字符串搜索
    startsWith/endsWith
    描述
    参数
    返回值
    注意
    案例
    案例解释
    contains
    描述
    参数
    返回值
    注意
    案例
    案例解释
    in
    描述
    参数
    返回值
    注意
    案例
    案例解释
    find/matches
    描述
    参数
    返回值
    注意
    案例
    案例解释
    indexOf/lastIndexOf
    描述
    参数
    返回值
    注意
    案例
    案例解释
    字符串填充
    padLeft/padRight
    描述
    参数
    返回值
    注意
    案例
    案例解释
    字符串判空操作
    replaceNull/replaceEmpty
    描述
    参数
    返回值
    注意
    案例
    案例解释
    特殊字符串函数
    jsonPath
    描述
    参数
    返回值
    注意
    案例
    案例解释
    jsonPathAdd/jsonPathSet
    描述
    参数
    返回值
    注意
    案例
    案例解释
    jsonPathPut
    描述
    参数
    返回值
    注意
    案例
    案例解释
    jsonPathDelete
    描述
    参数
    返回值
    注意
    案例
    案例解释
    字符串其他函数
    length
    描述
    参数
    返回值
    注意
    案例
    案例解释
    数学运算
    基础运算
    plus
    描述
    参数
    返回值
    注意
    案例
    案例解释
    minus
    描述
    参数
    返回值
    注意
    案例
    案例解释
    multiply
    描述
    参数
    返回值
    注意
    案例
    案例解释
    devide
    描述
    参数
    返回值
    注意
    案例
    案例解释
    mod
    描述
    参数
    返回值
    注意
    案例
    案例解释
    数学转换
    toRadix
    描述
    参数
    参数
    返回值
    注意
    案例
    案例解释
    fromRadix
    描述
    参数
    返回值
    注意
    案例
    案例解释
    随机数
    random
    描述
    参数
    返回值
    注意
    案例
    案例解释
    函数调用
    math
    描述
    参数
    返回值
    注意
    案例
    案例解释
    逻辑运算
    字符串比较
    isNull/notNull/isEmpty
    描述
    参数
    返回值
    注意
    案例
    案例解释
    equals/equalsIgnoreCase
    描述
    参数
    返回值
    注意
    案例
    案例解释
    数值比较
    gt/ge
    描述
    参数
    返回值
    注意
    案例
    案例解释
    lt/le
    描述
    参数
    返回值
    注意
    案例
    案例解释
    逻辑控制
    and/or/not
    描述
    参数
    返回值
    注意
    案例
    案例解释
    ifElse
    描述
    参数
    返回值
    注意
    案例
    案例解释
    时间函数
    now/format
    描述
    参数
    返回值
    注意
    案例
    案例解释
    通用函数
    URL编解码
    urlEncode/urlDecode
    描述
    参数
    返回值
    注意
    案例
    案例解释
    字符串编解码
    base64Encode/base64Decode
    描述
    参数
    返回值
    注意
    案例
    案例解释
    hash
    描述
    参数
    返回值
    注意
    注意
    案例
    案例解释
    类型转换
    toString
    描述
    参数
    返回值
    注意
    案例
    案例解释
    toNumber
    描述
    参数
    返回值
    注意
    案例
    案例解释
    toDecimal
    描述
    参数
    返回值
    注意
    案例
    案例解释
    toDate
    描述
    参数
    返回值
    注意
    案例
    案例解释
    表达式函数

    字符串

    大小写转换

    toUpper

    描述

    将小写转为大写
    参数

    返回值

    转换后的大写字符串

    案例

    假设 流文件 存在一个属性 demo,其值为demoDEMO

    表达式 输出结果
    ${demo:toUpper()} DEMODEMO
    toLower

    描述

    将大写转为小写
    参数

    返回值

    转换后的小写字符串

    案例

    假设 流文件 存在一个属性 demo,其值为demoDEMO

    表达式 输出结果
    ${demo:toLower()} demodemo
    去除字符串前后的空格

    trim

    描述

    和Java中的trim功能一致,都是去除字符串前后的空格(不会去掉字符串中间的空格)
    参数

    返回值

    去除前后空格后的字符串

    案例

    假设 流文件 存在一个属性 demo,其值为demo(前后各有一个空格)

    表达式 输出结果
    ${demo:trim()} demo
    字符串截取

    substring

    描述

    根据开始下标和结束下标截取字符串的一部分,必须提供开始下标,结束下标默认为字符串尾
    参数

    截取的起始下标
    截取的结束下标
    返回值

    截取后的字符串内容

    注意

    下标从0开始
    下标含头不含尾
    索引必须是数字,否则会报错
    开始下标必须小于结束下标,否则报错
    如果超长(指目标字符串过短)将返回空白字符串
    假设 流文件 存在一个属性 demo,其值为demo123

    案例

    表达式 输出结果
    ${demo:substring(0,1)} d
    ${demo:substring(0,4)} demo
    ${demo:substring(2)} mo123
    ${demo:substring(4)} 123
    ${demo:substring(${demo:length():minus(3)})} 123
    案例解释

    从第0个字符开始,到第1个字符,总共取1个字符(不包括第一个字符)
    从第0个字符开始,到第4个字符,总共取4个字符(不包括第4个字符)
    从第2个字符开始,到字符串最后(未提供结束下标)
    从第4个字符开始,到字符串最后(未提供结束下标)
    取字符串最后3个字符(首先获取到字符串长度,该长度减去要获取的长度即是需要截去的长度)
    substringBefore/substringBeforeLast

    描述

    substringBefore:截取从首部开始,到指定字符结束的字符串(正序)
    substringBeforeLast:截取从首部开始,到指定字符结束的字符串(倒序)
    这两个参数非常类似,其都是从开始取值,到指定字符结束,如果找不到目标字符,都会返回字符串的所有内容;唯一的区别在于,substringBefore是从当前位置向后寻找字符,而substringBeforeLast刚好相反,它是从后向前寻找
    参数

    匹配查找的字符串
    返回值

    截取的内容

    注意

    如果找不到指定的字符串,会将源字符串原样返回
    substringBefore是从头开始,substringBeforeLast是从尾开始
    案例

    假设 流文件 存在一个属性 demo,其值为demo123demo123

    表达式 结果
    ${demo:substringBefore(‘o1’)} dem
    ${demo:substringBeforeLast(‘o1’)} demo123dem
    ${demo:substringBefore(‘sss’)} demo123demo123
    ${demo:substringBeforeLast(‘sss’)} demo123demo123
    案例解释

    从头开始寻找o1 ,并返回从0下标开始,到o1字符串为止的中间字符
    从尾开始寻找o1 ,并返回从0下标开始,到o1字符串为止的中间字符
    从头开始寻找sss ,但源字符串不包括sss ,因此直接返回源字符串
    从尾开始寻找sss ,但源字符串不包括sss ,因此直接返回源字符串
    substringAfter/substringAfterLast

    描述

    substringAfter:截取从末尾开始,到指定字符结束的字符串(正序)
    substringAfterLast:截取从末尾开始,到指定字符结束的字符串(倒序)
    这两个函数非常类似,其都是从末尾取值,到指定字符结束,如果找不到目标字符,都会返回字符串的所有内容;唯一的区别在于,substringAfter是从当前位置向后寻找字符,而substringAfterLast刚好相反,它是从后向前寻找
    参数

    匹配查找的字符串
    返回值

    截取的内容

    注意

    如果找不到指定的字符串,会将源字符串原样返回
    substringAfter是从头开始,substringAfterLast是从尾开始
    截取时不包含目标字符串
    案例

    假设 流文件 存在一个属性 demo,其值为demo123demo123

    表达式 结果
    ${demo:substringBefore(‘o1’)} 23demo123
    ${demo:substringBeforeLast(‘o1’)} 23
    ${demo:substringBefore(‘sss’)} demo123demo123
    ${demo:substringBeforeLast(‘sss’)} demo123demo123
    案例解释

    从头开始寻找o1 ,并返回从字符串结束下标开始,到o1字符串为止的中间字符
    从尾开始寻找o1 ,并返回从字符串结束下标开始,到o1字符串为止的中间字符
    从头开始寻找sss ,但源字符串不包括sss ,因此直接返回源字符串
    从尾开始寻找sss ,但源字符串不包括sss ,因此直接返回源字符串
    附加与追加

    append/prepend

    描述

    append:在源字符串后追加字符串
    prepend:在源字符串前附加字符串
    append和prepend的区别在于,append是在源字符串后追加,prepend是在源字符串之前附加,> 使用时注意甄别它们之间的区别
    参数

    附加或追加的字符串
    返回值

    添加后的字符串

    注意

    如果源字符串为空,无论那个函数都会返回其本身
    案例

    假设 流文件 存在一个属性 demo,其值为demo

    表达式 输出结果
    ${demo:append(‘123’)} demo123
    ${demo:prepend(‘123’)} 123demo
    案例解释

    在字符串后附加
    在字符串前附加
    字符串替换

    replace/replaceFirst

    描述

    replace:用另一个字符串替换源字符串中的所有目标字符串(文本替换)
    replaceFirst:仅替换源字符串中第一次出现的目标字符串
    参数

    要匹配的字符串或正则表达式
    目标字符串
    返回值

    替换后的字符串

    注意

    replaceFirst 函数仅替换一次
    replace 函数会替换所有
    案例

    假设 流文件 存在一个属性 demo,其值为demo123demo123

    表达式 输出结果
    ${demo:replace(‘123’, ‘456’)} demo456demo456
    ${demo:replaceFirst(‘123’, ‘456’)} demo456demo123
    案例解释

    替换源字符串中所有的 123 为 456
    仅替换源字符串中第一次出现的 123 替换为 456
    字符串搜索

    startsWith/endsWith

    描述

    startsWith:判断给定的参数是否是源字符串的开始
    endsWith:判断给定的参数是否是源字符串的结束
    参数

    要进行比较的字符串
    返回值

    Boolean

    注意

    案例

    假设 流文件 存在一个属性 demo,其值为demo123

    表达式 输出结果
    ${demo:startsWith(‘demo’)} true
    ${demo:endsWith(‘123’)} true
    案例解释

    判断源字符串是否以 demo 开始
    判断源字符串是否以 123 结束
    contains

    描述

    判断源字符串中是否包含给定的参数
    参数

    要进行比较的参数
    返回值

    Boolean

    注意

    在字符串的任意位置匹配即认为符合
    案例

    假设 流文件 存在一个属性 demo,其值为demo123

    表达式 输出结果
    ${demo:contains(‘456’)} false
    ${demo:contains(‘mo12’)} true
    案例解释

    判断源字符串中是否包含 456
    判断源字符串中是否包含 mo12
    in

    描述

    判断源字符串是否包含在给定参数的字符串列表中
    参数

    进行比较的字符串列表
    返回值

    Boolean

    注意

    案例

    假设 流文件 存在一个属性 demo,其值为demo

    表达式 输出结果
    ${demo:in(‘123’, ‘456’, ‘aaa’)} false
    ${demo:in(‘123’, ‘456’, ‘demo’)} true
    案例解释

    判断 demo 是否包含在 123、456、aaa 中
    判断 demo 是否包含在 123、456、demo 中
    find/matches

    描述

    根据给定的正则表达式,在源字符串中寻找匹配项
    find:部分匹配即可
    matches:必须和给定的参数完全一致
    参数

    正则表达式(表达式)
    返回值

    Boolean

    注意

    find要求部分匹配即可,matches必须完全匹配
    正则表达式的写法须符合java的规范
    案例

    假设 流文件 存在一个属性 demo,其值为demo123

    表达式 输出结果
    ${demo:find(’[Dd]em[Oo]’)} true
    ${demo:find(’[Dd]em[Oo].*’)} false
    ${demo:matches(’[Dd]em[Oo]’)} false
    案例解释

    在源字符串中寻找是否具有匹配的字符串(D、O允许大小写)
    在源字符串中寻找是否具有匹配的字符串(D、O允许大小写,且具有.*后缀)
    在源字符串中寻找是否具有匹配的字符串(D、O允许大小写),matches要求完全匹配,因此返回false
    indexOf/lastIndexOf

    描述

    在源字符串中寻找给定参数的索引
    indexOf:正序查找(从前向后)
    lastIndexOf:倒序查找(从后向前)
    参数

    要寻找的字符串
    返回值

    Number

    注意

    如果找不到给定的参数,将返回 -1
    索引从 0 开始计算
    如果有多个匹配项,将返回 第一次 找到的匹配项的索引
    案例

    假设 流文件 存在一个属性 demo,其值为demo123

    表达式 输出结果
    ${demo:indexOf(‘e’)} 1
    ${demo:lastIndexOf(‘e’)} 5
    案例解释

    在源字符串中 从前向后 查找字符 e
    在源字符串中 从后向前 查找字符 e
    字符串填充

    padLeft/padRight

    描述

    padLeft:在左侧填充,直到符合长度
    padRight:在右侧填充,直到符合长度
    这两个函数都是根据提供的目标长度和填充字符串,对源字符串进行填充,区别是填充的位置不一样
    参数

    目标长度
    填充字符串
    返回值

    填充完成后的字符串

    注意

    案例

    假设 流文件 存在一个属性 demo,其值为demo

    表达式 输出结果
    ${demo:padLeft(10,’#’)} ######demo
    ${demo:padRight(10,’#’)} demo######
    案例解释

    向左侧填充#,使字符串长度为10
    向右侧填充#,使字符串长度为10
    字符串判空操作

    replaceNull/replaceEmpty

    描述

    replaceNull:如果字符串为空,返回参数
    replaceEmpty:如果字符串为空或其中字符不可见(换行,回车,空格,制表符等),返回参数
    参数

    为空时要替代的字符串
    返回值

    替换结束后的字符串

    注意

    案例

    假设 流文件 存在一个属性 demo1,其值为空

    假设 流文件 存在一个属性 demo2,其值为(三个空格)

    表达式 输出结果
    ${demo1:replaceNull(‘123456’)} 123456
    ${demo1:replaceEmpty(‘123456’)} 123456
    ${demo2:replaceNull(‘123456’)} (三个空格)
    ${demo2:replaceEmpty(‘123456’)} 123456
    案例解释

    demo1为空,replaceNull替换内容为 123456
    demo1为空,replaceEmpty替换内容为 123456
    demo2 存在空白字符,replaceNull原样返回
    demo2 不存在可见字符,replaceEmpty替换内容为 123456
    特殊字符串函数

    jsonPath

    描述

    允许通过表达式直接读取json字符串中的值
    参数

    要读取的Json路径
    返回值

    String

    注意

    $ 代表Json的根
    如果读取的路径不存在,将返回空值
    如果源字符串不是有效的Json字符串,将返回空值
    如果读取到的内容仍然是一个Json对象或数组,将返回该json的字符串形式
    案例

    假设 流文件 存在一个属性 json,其值为

    {
    “a1”:”123”,
    “a2”:{“b1”:”11”,”b2”:”12”},
    “a3”:”456”
    }
    1
    2
    3
    4
    5
    表达式 输出结果
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …json:jsonPath(‘.a1’)} 123
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …json:jsonPath(‘.a2.b1’)} 11
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …json:jsonPath(‘.a6’)} (空值)
    案例解释

    尝试获取json中的a1
    尝试获取json中的a2.b1
    尝试获取json中的a6(该值不存在)
    jsonPathAdd/jsonPathSet

    描述

    向Json数组或对象中添加值
    jsonPathAdd:向Json Array中添加给定的值
    jsonPathSet:向Json Object中添加给定的值
    参数

    目标路径
    要添加的值
    返回值

    String

    注意

    注意区分要添加到Json对象还是数组
    案例

    假设 流文件 存在一个属性 json,其值为

    {
    “a1”:”123”,
    “a2”:{“b1”:”11”,”b2”:”12”},
    “a3”:[]
    }
    1
    2
    3
    4
    5
    表达式 输出结果
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …n:jsonPathAdd(‘.a3’, ‘abc’)} {“a1”:“123”,“a2”:{“b1”:“11”,“b2”:“12”},“a3”:[“abc”]}
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …n:jsonPathSet(‘.a1’, ‘999’)} {“a1”:“999”,“a2”:{“b1”:“11”,“b2”:“12”},“a3”:[]}
    案例解释

    向 a3 Json Array中添加一个值 abc
    向 a1 Json 对象的值修改为 999
    jsonPathPut

    描述

    向Json中指定路径添加键值
    参数

    路径(要修改的路径,一定以 $ 开始
    键(要添加的键值对的键)
    值(要添加的键值对的值)
    返回值

    String

    注意

    如果源字符串无效(非JSON字符串),将通告一个Json转换相关的异常
    案例

    假设 流文件 存在一个属性 json,其值为

    {
    “a1”:”123”,
    “a2”:{“b1”:”11”,”b2”:”12”},
    }
    1
    2
    3
    4
    表达式 输出结果
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …n:jsonPathPut(‘‘,’a3’, ‘abc’)} {“a1”:“123”,“a2”:{“b1”:“11”,“b2”:“12”},“a3”:“abc”}
    案例解释

    在Json根添加一个键值对 “a3”:abc
    jsonPathDelete

    描述

    参数

    Json路径,指示要删除的位置

    返回值

    String

    注意

    案例

    假设 流文件 存在一个属性 json,其值为

    {
    “a1”:”123”,
    “a2”:{“b1”:”11”,”b2”:”12”},
    }
    1
    2
    3
    4
    表达式 输出结果
    KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …sonPathDelete(‘.a1’)} {“a2”:{“b1”:“11”,“b2”:“12”}}
    案例解释

    删除 json根目录下的 a1 字段
    字符串其他函数

    length

    描述

    返回源字符串的长度
    参数

    返回值

    源字符串的长度

    注意

    如果目标属性或内容不存在,会返回 0 长度
    案例

    假设 流文件 存在一个属性 demo,其值为demo123demo123

    表达式 输出结果
    ${demo:length()} 14
    案例解释

    获取源字符串的长度
    数学运算

    基础运算

    plus

    描述

    将源字符串作为数值,并加上参数中提供的值
    参数

    数值
    返回值

    数值(字符串)

    注意

    案例

    假设 流文件 存在一个属性 fileSize,其值为1

    表达式 输出结果
    ${fileSize:plus(1)} 2
    案例解释

    的1 + 1 = 2
    minus

    描述

    将源字符串作为数值,并减去参数中提供的值
    参数

    数值
    返回值

    数值(字符串)

    注意

    案例

    假设 流文件 存在一个属性 fileSize,其值为1

    表达式 输出结果
    ${fileSize:minus(1)} 0
    案例解释

    1 - 1 = 0
    multiply

    描述

    将源字符串作为数值,并乘于参数中提供的值
    参数

    数值
    返回值

    数值(字符串)

    注意

    案例

    假设 流文件 存在一个属性 fileSize,其值为2

    表达式 输出结果
    ${fileSize:plus(2)} 4
    案例解释

    2 * 2 = 4
    devide

    描述

    将源字符串作为数值,并除于参数中提供的值
    参数

    数值
    返回值

    数值(字符串)

    注意

    案例

    假设 流文件 存在一个属性 fileSize,其值为8

    表达式 输出结果
    ${fileSize:plus(2)} 4
    案例解释

    8 / 2 = 4
    mod

    描述

    将源字符串作为数值,并根据参数进行模除
    参数

    数值
    返回值

    数值(字符串)

    注意

    案例

    假设 流文件 存在一个属性 fileSize,其值为100

    表达式 输出结果
    ${fileSize:plus(12)} 4
    案例解释

    100 % 12 = 4
    数学转换

    toRadix

    描述

    基数转换
    参数

    参数

    期望基数(2 - 36)
    最小字符数(可选)
    返回值

    字符串

    源字符串的长度

    注意

    必须为整数(如果为小数,会首先尝试转为整数)
    案例

    假设 流文件 存在一个属性 size,其值为1024

    表达式 输出结果
    ${size:toRadix(10)} 1024
    ${size:toRadix(2)} 10000000000
    ${size:toRadix(2,16)} 0000010000000000
    案例解释

    将数值转为10进制(当前已经时十进制)
    将数值转为2进制
    将数值转为2进制,且补全到16位(前面附加0)
    fromRadix

    描述

    将根据指定的源数值基数,将源字符串(整数)转换为10进制
    参数

    源基数(原本的基数)[2 - 36]
    返回值

    字符串

    注意

    必须为整数(如果为小数,会首先尝试转为整数)
    案例

    假设 流文件 存在一个属性 size,其值为1234A

    表达式 输出结果
    ${size:fromRadix(11)} 17720
    ${size:fromRadix(16)} 74570
    案例解释

    将源字符串视为 11 进制的整数,并转为 10 进制的整数
    将源字符串视为 16 进制的整数,并转为 10 进制的整数
    随机数

    random

    描述

    返回一个随机数(不安全的随机数,不建议使用)
    参数

    返回值

    数值

    注意

    案例

    表达式 输出结果
    ${random():mod(10):plus(1)} 5
    案例解释

    返回一个从1-10之间的随机数
    函数调用

    math

    描述

    允许用户通过反射直接调用Java中的math函数
    参数

    函数名(Java中的函数名称)
    附加参数(可选,附加在函数中的参数)
    返回值

    数值

    注意

    如果目标属性或内容不存在,会返回 0 长度
    案例

    表达式 输出结果
    ${math(“random”)} 15
    案例解释

    调用了Java中的random函数
    逻辑运算

    字符串比较

    isNull/notNull/isEmpty

    描述

    isNull:为空返回真
    notNull:不为空返回真
    isEmpty:为空或只包含不可见字符返回真
    参数

    返回值

    Boolean

    注意

    案例

    假设 流文件 存在一个属性 demo1,其值为空

    假设 流文件 存在一个属性 demo2,其值为(三个空格)

    表达式 输出结果
    ${demo1:isNull()} true
    ${demo1:notNull()} false
    ${demo1:isEmpty()} true
    ${demo2:isNull()} false
    ${demo2:notNull()} true
    ${demo2:isEmpty()} true
    案例解释

    demo1为空,isNull返回true
    demo1为空,notNull返回false
    demo1为空,isEmpty返回true
    demo2仅包含空格,isNull返回false
    demo2仅包含空格,notNull返回true
    demo2仅包含空格,isEmpty返回true(忽略了空格)
    equals/equalsIgnoreCase

    描述

    equals:判断源字符串和参数字符串是否一致(大小写必须完全相同)
    equalsIgnoreCase:判断源字符串和参数字符串是否一致(忽略大小写的区别)
    参数

    要比较的值
    返回值

    Boolean

    注意

    案例

    假设 流文件 存在一个属性 demo,其值为hello

    表达式 输出结果
    ${demo:equals(‘hello’)} true
    ${demo:equalsIgnoreCase(‘HELLO’)} true
    案例解释

    将demo的值和参数比较,并返回true
    将demo的值和参数比较,忽略大小写情况下一致,返回true
    数值比较

    gt/ge

    描述

    gt:大于
    ge:大于等于
    参数

    要进行比较的数值
    返回值

    Boolean

    注意

    参数必须为数字,如果无法转换为数字,将返回false
    案例

    假设 流文件 存在一个属性 num,其值为10

    表达式 输出结果
    ${num:gt( 9 )} true
    ${num:ge( 10 )} true
    案例解释

    判断 num 是否大于 9
    判断 num 是否大于等于 10
    lt/le

    描述

    lt:小于
    le:小于等于
    参数

    要进行比较的数值
    返回值

    Boolean

    注意

    参数必须为数字,如果无法转换为数字,将返回false
    案例

    假设 流文件 存在一个属性 num,其值为10

    表达式 输出结果
    ${num:lt( 5 )} false
    ${num:le( 5 )} false
    案例解释

    判断 num 是否小于 5
    判断 num 是否小于等于 5
    逻辑控制

    and/or/not

    描述

    and:逻辑与
    or:逻辑或
    not:逻辑非
    参数

    要进行比较的数值
    返回值

    Boolean

    注意

    案例

    假设 流文件 存在一个属性 num,其值为10

    表达式 输出结果
    n u m : g e ( 9 ) : a n d ( {num:ge( 9 )}:and( num:ge(9):and({num:ge( 10 )})} true
    n u m : l t ( 5 ) : o r ( {num:lt( 5 )}:or( num:lt(5):or({num:ge( 10 )})} true
    n u m : l t ( 5 ) : o r ( {num:lt( 5 )}:or( num:lt(5):or({num:ge( 10 )}):not()} false
    案例解释

    判断 (10是否大于9) 且 (10 是否大于等于 10)
    判断 (10是否小于5) 或 (10 是否大于等于 10)
    判断 非((10是否小于5) 或 (10 是否大于等于 10))
    ifElse

    描述

    类似Java中的三目运算,如果条件成立,使用第一个参数的值,如果不成立,使用第二个参数的值
    参数

    条件成立时使用的值
    条件不成立时使用的值
    返回值

    字符串(根据参数类型)

    注意

    案例

    假设 流文件 存在一个属性 bool,其值为true

    表达式 输出结果
    ${bool:ifElse(‘a’,‘b’)} a
    案例解释

    判断bool的值,因为其值为true,因此选用第一个参数作为返回值返回
    时间函数

    now/format

    描述

    now:获取当前日期和时间
    format:格式化时间
    参数

    返回值

    Date

    注意

    如果进行时间比较,先转为毫秒再比较
    案例

    表达式 输出结果
    ${now()} 当前时间
    ${now():toNumber()} 从1970年1月1日0时0分开始的毫秒数
    ${now():toNumber():minus(86400000) 昨天(24小时前)
    ${now():format(‘yyyy’)} 当前年(如2021)
    ${now():format(‘yyyyMMdd’)} 当前日期(如20210728)
    ${now():format(“yyyy-MM-dd HH:mm:ss”)} 日期和时间(2021-07-28 09:24:35)
    案例解释

    直接获取当前时间,一般不要直接用这个函数
    获取当前时间的毫秒数
    获取昨天的日期(毫秒)
    获取今年的年份
    获取当前日期
    获取当前日期和时间
    通用函数

    URL编解码

    urlEncode/urlDecode

    描述

    urlEncode:返回对于网站而言友好的Url版本
    urlDecode:将编码后的Url还原回人类友好的版本
    参数

    返回值

    对网站友好的URL版本

    注意

    案例

    假设 流文件 存在一个属性 url,其值为http://www.tineaine.com

    假设 流文件 存在一个属性 url2,其值为http%3A%2F%2Fwww.tineaine.com

    表达式 输出结果
    ${url:urlEncode()} http%3A%2F%2Fwww.tineaine.com
    ${url:urlurlDecode()} http://www.tineaine.com
    案例解释

    对目标URL进行编码
    对目标URL进行解码
    字符串编解码

    base64Encode/base64Decode

    描述

    base64Encode:将源字符串进行base64编码
    base64Decode:将源字符串进行base64解码
    参数

    返回值

    字符串

    注意

    编码字符集为 ascii
    案例

    假设 流文件 存在一个属性 user,其值为admin:admin

    假设 流文件 存在一个属性 pass,其值为YWRtaW46YWRtaW4=

    表达式 输出结果
    ${user:base64Encode()} YWRtaW46YWRtaW4=
    ${pass:base64Decode()} admin:admin
    案例解释

    对字符串进行base64编码
    对字符串进行base64解码
    hash

    描述

    使用提供的哈希算法返回一个十六进制编码的字符串。可用于生成惟一标识。
    参数

    算法(计算Hash时使用的算法)[SHA-384, SHA-224, SHA-256, MD2, SHA, SHA-512, MD5]
    返回值

    字符串

    注意

    注意

    MD2, MD5, 和 SHA (SHA-1)不被认为是加密安全的算法
    案例

    假设 流文件 存在一个属性 payload ,其值为string value

    表达式 输出结果
    ${payload:hash(‘SHA-256’)} 9b6a1a9167a5caf3f5948413faa89e0ec0de89e12bef55327442e60dcc0e8c9b
    案例解释

    对目标URL进行编码
    对目标URL进行解码
    类型转换

    toString

    描述

    将源字符串转换为字符串格式
    参数

    返回值

    String

    注意

    案例

    假设 流文件 存在一个属性 demo,其值为123

    表达式 输出结果
    ${demo:toNumber():toString()} 123
    案例解释

    将其转为Number,然后再转为String,注意,属性值默认情况下均被视为String类型
    toNumber

    描述

    将源字符串转换为整数格式
    参数

    返回值

    Number

    注意

    案例

    假设 流文件 存在一个属性 demo,其值为123

    表达式 输出结果
    ${demo:toNumber()} 123
    案例解释

    将String转换为Number类型(相当于Java中的Integer)
    toDecimal

    描述

    将源字符串转换为浮点格式
    参数

    返回值

    Decimal

    注意

    该函数只能保留一位小数
    案例

    假设 流文件 存在一个属性 demo,其值为123.1

    表达式 输出结果
    ${demo:toDecimal()} 123.1
    案例解释

    将String转为Decimal类型(转为浮点类型)
    toDate

    描述

    将源字符串转换为日期格式
    参数

    格式化方式,必须符合Java中SimpleDateFormat的要求
    时区(可选)
    返回值

    Date

    注意

    案例

    假设 流文件 存在一个属性 date,其值为2021

    表达式 输出结果
    ${demo:toDate(‘yyyy’, ‘GMT’)} 2021/12/31 15:36:03.264Z
    案例解释

    将String转换为Date类型

    原文链接:https://blog.csdn.net/TineAine/article/details/119185658