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