我真的不相信通用的文本文件解析器-特别是那些文件是为人类读者准备的。像HTML和weblog这样的文件可以用漂亮的Soap或正则表达式很好地处理。但是人类可读的文本文件仍然是一个难以破解的难题。在
只是我愿意手工编写一个文本文件解析器,对我遇到的每种不同格式进行裁剪。我仍然想看看是否有可能有一个更好的程序结构,我仍然能够理解3个月后的程序逻辑。也是为了让它可读。在
今天我遇到了一个从文件中提取时间戳的问题:
"As of 12:30:45, ..."
"Between 1:12:00 and 3:10:45, ..."
"During this time from 3:44:50 to 4:20:55 we have ..."
解析很简单。我在每一行的不同位置都有时间戳。但我认为我应该如何设计模块/函数,以:(1)每行格式将被单独处理,(2)如何分支到相关函数。例如,我可以对每行解析器进行如下编码:
^{pr2}$这可以帮助我快速了解程序已经处理的格式。我总是可以添加新函数,以防遇到其他新格式。在
但是,我仍然没有一个优雅的方法来分支到相关的函数。在
^{3}$这不是我想维持的。在
有什么建议吗?有一次,我以为装修师会帮上忙,但我自己解决不了。如果有人能给我指出正确的方向,我会很感激。在
为什么不使用正则表达式呢?在
因此,
ts_vals
将是一个包含一个或两个元素的列表。在怎么办
或者有一句名言,如伊恩所述:
^{pr2}$考虑使用字典映射:
那么你只需要这样使用它:
^{pr2}$更容易维护。如果有新函数,只需将其与关键字一起添加到
dmap
中:相关问题 更多 >
编程相关推荐