Kie*_*ron 6 c# email parsing projects-and-solutions
我们有一个场景要求我们解析大量的电子邮件(纯文本),每个电子邮件"类型"是脚本针对各种平台运行的结果.有些是制表符分隔的,有些是空格分隔的,有些是我们还不知道的.
我们将来也需要支持更多"格式".
我们是否使用以下方法寻求解决方案
整体解决方案将在C#2.0中开发(希望3.5)
您所说的三种解决方案各自涵盖了非常不同的需求。
\n\n手动解析(简单的文本搜索)是最灵活、适应性最强的,但是,由于所需的解析更加复杂,它很快就会变得很麻烦。
\n\n正则表达式是一个中间立场,可能是您最好的选择。它们功能强大且灵活,因为您可以自己从调用不同正则表达式的代码中添加更多逻辑。主要缺点是这里的速度。
\n\nLex/Yacc实际上只适用于非常复杂、可预测的语法,并且缺乏很多编译后灵活性。您无法在解析过程中轻松更改解析器,实际上您可以,但它太重了,您最好使用正则表达式。
\n\n我知道这是一个陈词滥调\xc3\xa9的答案,这一切实际上都取决于你的确切需求是什么,但从你所说的来看,我个人可能会选择一袋正则表达式。
\n\n作为替代方案,正如 Vaibhav 指出的那样,如果您可能会出现几种不同的情况,并且您可以轻松检测到即将出现的情况,那么您可以制作一个插件系统来选择正确的算法,并且这些算法可能都非常不同,一种在尖锐的情况下使用 Lex/Yacc,另一种在更简单的情况下使用 IndexOf 和 regex。
\n