c# – 解析字符串的最佳方法是什么?
我们有一个场景要求我们解析大量的电子邮件(纯文本),每个电子邮件“类型”是脚本针对各种平台运行的结果.有些是制表符分隔的,有些是空格分隔的,有些是我们还不知道的.
我们将来也需要支持更多“格式”. 我们是否使用以下方法寻求解决方案 >正则表达式 整体解决方案将在C#2.0中开发(希望3.5) 解决方法
您说的三种解决方案都涵盖了非常不同的需求.
手动解析(简单文本搜索)是最灵活和最具适应性的,然而,由于所需的解析更复杂,它很快就会成为真正的痛苦. 正则表达式是一个中间立场,这可能是你最好的选择.它们功能强大且灵活,您可以自己从调用不同正则表达式的代码中添加更多逻辑.主要缺点是这里的速度. Lex / Yacc实际上只适用于非常复杂,可预测的语法,并且缺乏很多后编译灵活性.你不能在解析中间很容易地改变解析器,实际上你可以,但它太重了,你最好使用正则表达式. 我知道这是一个陈词滥调的答案,这一切都归结为你的确切需求,但从你所说的,我个人可能会带着一袋正则表达式. 作为替代方案,正如Vaibhav所说,如果你有几种不同的情况可以出现并且你可以轻松地检测出哪一种,你可以制作一个选择正确算法的插件系统,这些算法可能都非常不同,一个在尖尖的情况下使用Lex / Yacc,另一个在更简单的情况下使用IndexOf和regex. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |