首页 > 解决方案 > 使用正则表达式的空手道框架 JSON 路径解析不适用于整个单词匹配

问题描述

我正在努力匹配例如的名称。回复中的名字说:

'世界地图'

现在我想在空手道 jsonpath 中编写一个通用的正则表达式,它应该适用于“map”这个词,而不管它在多个词中的位置,例如 - 一个常见的脚本应该匹配下面的排列。

1 - 气候地图 2 - 沃尔兹地图 3 - 世界中国地图 4 - 大地图太小 5 - 大地图在那里

到目前为止我写的东西,这似乎不起作用

$..source..[?(@.name =~ /(\bmap\b)/i)]

谁能帮助我应该输入什么确切的正则表达式来检查上面示例中的“地图”世界。

标签: regexkaratejsonpathjson-path-expression

解决方案


有时使用纯 Java 更简单:

* def str = 'foo map bar'
* assert str.contains('map')

* def hasMap = function(x){ return x.contains('map') }
* assert hasMap(str)

所以不要使用正则表达式,请参考文档的这一部分:https ://github.com/intuit/karate#self-validation-expressions


推荐阅读