parsing - 一个值中有多个点的 SVG 路径数据
问题描述
我不得不编写自己的 SVG 路径解析器,发现我无法解析来自 Wikipedia 的Skull_and_crossbones.svg等文件。在第二条路径的数据中,我发现-24.57.56
这只是无效值,我看不到如何解析它。
解决方案
如果您查看路径数据语法的规范,您会发现以下解释:
BNF 的处理必须尽可能多地消耗给定的 BNF 生产,在遇到不再满足生产的字符时停止...对于字符串
M 0.6.5
,“moveto”的第一个坐标消耗字符0.6
并在遇到第二个小数点时停止,因为“坐标”的产生只允许一个小数点。结果是第一个坐标是0.6
,第二个坐标是.5
。
对于您的示例,产生-24.57.56
式等效于-24.57, 0.56
.
您也可以说:点前的前导零、逗号和空格始终是可选的。编写路径数据的作者只能使用它们来避免歧义,并确保您可以解析为一个数字的长度符合他们的意图。
推荐阅读
- kubernetes - 为什么 Kubernetes HA 需要奇数个 master
- amazon-web-services - AWS Cognito - 成功注册后获取令牌
- laravel - Laravel - GET请求下载自动注销
- python - 使用 Python 调用带有身份验证的 REST API
- php - 如何在mysql datetime列中存储带有时区信息的时间?
- react-redux - 测试反应异步动作创建者 - 未定义的数据
- java - Java中具有多个类的Varargs问题
- c - 将文件内容逐行读取到矩阵中
- angular - 用另一个对象数组替换一个对象数组
- r - 在ggplot条形图中使Y轴从1而不是0开始