我正在尝试根据 RFC 5545 解析 iCal 输入文件。具体而言: - 属性名称 - 可选参数,每个参数都以分号“;”开头 并且可能有多个逗号分隔值(参数值可能是双引号,在这种情况下它们可能包含冒号、分号和逗号) -冒号“:” -属性值
示例行:
> ORGANIZER;CN=Obi-WanKenobi;SENTBY="mailto:obiwan@padawan.com":mailto:laowaion@padawan.com
在这种情况下,该行将被读入缓冲区并解析(当前使用 strtok),如下所示: Organizer 是属性名称;CN=Obi-WanKenobi 和 SENTBY="mailto:obiwan@padawan.com" 是参数;mailto:lauwaion@padawan.com 是属性值。
我不知道从哪里开始。不同的输入案例几乎是无限的,我无法找到一种有效的算法来涵盖所有上述案例。strtok 是要走的路吗?或者是否有另一个具有更智能解析器的 C 库?需要有人让我走上正轨。