我正在学习如何使用 peg.js 编写解析器并遇到了一个独特的问题。我;用作分隔符来对键值对中的字符串进行分类。
示例:如果要解析的字符串是name=prabesh;city=Bangalore. 我的解析器目前将name其作为键和prabesh值,city作为键和bangalore值。
问题是如果分隔符是字符串的一部分怎么办?
例如:city=bangalore;address=#12/1;santacruz
你怎么能解析它?
方法:搜索连续;的,即从第一次=搜索连续;的,然后将介于=和最后的文本;视为一个值。
这种方法的问题是,如果值本身有一个,=那么解析器将无法正确解析它。
例如,这会失败:token=crbz23;4=134;
有什么建议么?