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