karate - 空手道 XML 断言:迭代以匹配属性内的模式
问题描述
我有这个正则表达式模式,(\-?\d?)(\.?\d)*\,{1}(\-?\d+\.?\d*)
用于以下数据
<LinearRing>
<coordinates> 46.8,16.600001 023,16.600035 -46.2000,16.60004 46,164 47.400044,-14.1 47.400043,13.8 47.400043,0 47.400024,-3.9 </coordinates>
<coordinates> 46.8,16.600032 46,16.600035 -46.2000,16.60004 46,164 47.400044,-14.1 47.400043,13.8 47.400043,0 47.400024,-3.9 </coordinates>
</LinearRing>
由于空间/间隙(16.600001和023之间),匹配失败,我也尝试添加\\s?
但仍然失败,
# * def xmlData1 = above data
* match each $xmlData1/LinearRing/coordinates == '#regex ((\\-?\\d?)(\\.?\\d)*\\,{1}(\\-?\\d+\\.?\\d*)\\s?)'
这是否可以在坐标内迭代每个组(2个值)以匹配空手道中的上述正则表达式?或者我如何调整我的正则表达式以匹配格式?每个值之间只允许一个空格
解决方案
您应该考虑其他方法:
* def input = ' 46.8,16.600001 023,16.600035 -46.2000,16.60004 46,164 47.400044,-14.1 47.400043,13.8 47.400043,0 47.400024,-3.9 '
* def temp = input.trim().split(' ')
* match each temp == '#regex .*'
我还要说,在我看来,你所做的这些断言似乎是在浪费时间。你真的通过检查这些正则表达式获得了什么吗?如果适用,我建议您与您的潜在客户和产品负责人合作。
我要做的是编写一个 Java 类,它可以解析和“理解”这些数字——它们是否是有效的坐标等。但取决于你。
推荐阅读
- python - 什么是附加到列表字典的巧妙方法?
- android - Android TextView fromHtml() 如何支持不支持的css样式、文字大小?
- c - 为什么它不应该进入“默认”状态?
- python - 计算前导零
- reactjs - 如何解决名为“ my-app 目录包含可能冲突的文件 (package.json) 的错误?
- signalr - SignalR 无服务器报告进度
- visual-studio - VS 2008 在调试菜单下,“将转储另存为...”选项卡多次出现
- python - 如何一次在 BlogSpot 中上传多篇博客文章?
- python - 更新类变量也会影响已创建的对象
- django - 添加中间模型字段以反转关系