SpiderFlow-表达式语法

时间:2026-02-15

表达式语法

表达式语法

基本用法

本项目中表达式引擎也支持模板的方式,例如动态拼接url

https://www.xxx.com/${path}/q?=keyword=${keyword}

运算符

模板语言支持大多数Java运算符。这些运算符的优先级也与Java中的相同。

类型

byte ${123b}short ${123s}int ${123}long ${123l}float ${123f}double ${123d}string ${'hello'}string ${"hello"}

同时也支持定义Map和List

${{key : "value"}}${[1,2,3,4,5]}${{$key : "value"}}//$key表示动态从变量中获取key值

一元运算符

您可以通过一元运算-符将数字取反,例如${-234}。要取反布尔表达式,可以使用!运算符,例如${!true}。

算术运算符

支持常见的算术运算符,例如${1 + 2 * 3 / 4 % 2}

比较运算符

${23 < 34},${23 <= 34},${23 > 34},${23 >= 34},${ true != false },${23 == 34}

比较运算符结果为boolean类型

逻辑运算符

除了一元运算!符,您还可以使用&&和||。就像Java中一样,运算符也是一种短路运算符。如果&&左边计算为false,则不会计算右边。如果||左侧为true,则不会计算右边

三元运算符

三元运算符是if语句的简写形式,其工作方式类似于Java中,例如${true ? "yes" : "no"}

变量

${var}

通过${变量名}调用

调用方法

${extract.xpath(resp.html,'//div[@id=abc]').regx('/\\d/').toInt()}

通过${变量.方法名(参数1,参数2,….)}进行调用

数组和Map

${myArray[2]} ${myArray[indexVar]} ${myMap.get("key")} ${myMap["key"]} ${myMap.get(keyVar)} ${myMap[keyVar]}

链式调用

与Java中一样,您可以无限嵌套成员,数组元素和映射访问

${myObject.aField[12]["key"].someMethod(1, 2).anotherMethod()}
${extract.xpath(resp.html,'//div[@id=abc]').regx('/\\d/').toInt()}


免责声明:服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
IPv4 © 2005-2026 库目书 版权所有 | kumushu.com .All Rights Reserved
黑ICP备2022003236号-1