4

下面是一个消息示例:

User: tbone
Location: /whatever
Time: 23:23:23

This is a little message.

它有点像 HTTP 和其他协议:标头后跟一个空行和消息正文。

解析这个最简单有效的方法是什么?标准文本/扫描仪对我来说看起来不错。如果我能更好地处理空白,这对我来说会很容易使用。也就是说,在标题中,它应该忽略冒号周围的空格,但让我知道单词和换行符之间的空格。我还需要知道消息正文何时开始。

扫描仪可能是适合这项工作的工具吗?有更好的策略吗?我是否应该编写自己的小解析器,一次沿着一个字符(或有时两个)行进并构建我的数据结构?这是我想避免的那种不便,但我可以做到。

顺便说一句,我控制消息格式。是否有更好的消息格式可以简化任务?

4

1 回答 1

5

text/scanner 将太多开销(在程序员时间)用于这种简单的格式。

net/http 使用net/textproto,您也可以使用它。寻找 MIMEHeader 和ReadMIMEHeader

如果您需要比 MIMEHeader 包含的内容更复杂的内容,我会考虑只使用 JSON。

于 2013-03-27T06:13:20.280 回答