c# – 解析字符串的最佳方法是什么?

c# – 解析字符串的最佳方法是什么?,第1张

概述我们有一个场景要求我们解析大量的电子邮件(纯文本),每个电子邮件“类型”是脚本针对各种平台运行的结果.有些是制表符分隔的,有些是空格分隔的,有些是我们还不知道的. 我们将来也需要支持更多“格式”. 我们是否使用以下方法寻求解决方案 >正则表达式 >只需字符串搜索(使用string.IndexOf等) > Lex / Yacc >其他 整体解决方案将在C#2.0中开发(希望3.5) 您说的三种解决方 我们有一个场景要求我们解析大量的电子邮件(纯文本),每个电子邮件“类型”是脚本针对各种平台运行的结果.有些是制表符分隔的,有些是空格分隔的,有些是我们还不知道的.

我们将来也需要支持更多“格式”.

我们是否使用以下方法寻求解决方案

>正则表达式
>只需字符串搜索(使用string.IndexOf等)
> Lex / Yacc
>其他

整体解决方案将在C#2.0中开发(希望3.5)

解决方法 您说的三种解决方案都涵盖了非常不同的需求.

手动解析(简单文本搜索)是最灵活和最具适应性的,然而,由于所需的解析更复杂,它很快就会成为真正的痛苦.

正则表达式是一个中间立场,这可能是你最好的选择.它们功能强大且灵活,您可以自己从调用不同正则表达式的代码中添加更多逻辑.主要缺点是这里的速度.

Lex / Yacc实际上只适用于非常复杂,可预测的语法,并且缺乏很多后编译灵活性.你不能在解析中间很容易地改变解析器,实际上你可以,但它太重了,你最好使用正则表达式.

我知道这是一个陈词滥调的答案,这一切都归结为你的确切需求,但从你所说的,我个人可能会带着一袋正则表达式.

作为替代方案,正如Vaibhav所说,如果你有几种不同的情况可以出现并且你可以轻松地检测出哪一种,你可以制作一个选择正确算法的插件系统,这些算法可能都非常不同,一个在尖尖的情况下使用Lex / Yacc,另一个在更简单的情况下使用IndexOf和regex.

总结

以上是内存溢出为你收集整理的c# – 解析字符串的最佳方法是什么?全部内容,希望文章能够帮你解决c# – 解析字符串的最佳方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1261969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存