我有一些输入参数,例如:
参数1 =参数1 值&参数2 =参数2 值&参数3 =参数3 值...
这些参数用字符' & '链接,参数及其值用' = '链接。我想将它们解析成这样的键值映射:
[param1, param1Value], [param2, param2Value], [param3, param3Value],...
但是因为参数的值包含两个key-characters,这会破坏参数解析过程。
我被告知参数传递者,他们创建了这些参数格式以便于自定义,例如使用sprintf更改不同应用程序的参数值。所以很难说服他们将这些参数分隔在一个映射数组中。
我原本打算使用 yacc/lex,但是对于这样一个little-feature来说太复杂了。sscanf也可以解析类似正则表达式的文本,但是为我的参数列表构建一个类似正则表达式的字符串似乎并不容易。
有没有简单但可靠的方法可以在没有关键字符的情况下解析它们?