在文本文件上使用正则表达式的最佳方法是什么?

Dor*_*sky 0 c# regex algorithm optimization

由于正则表达式似乎只接受字符串,因此搜索文件的最常用方法是将其读取为单个字符串或依次读取每一行.问题是,对于大文件,您要么在内存中保存一个巨大的字符串,要么使用大量创建,使用并留给垃圾收集的字符串来终止GC.有谁知道更好的方法来访问这个问题?

Hen*_*man 5

"最佳"方式取决于您的需求.

并且你不会很快用大量的字符串"杀死"GC.测试/验证您的假设.

  • 当您的问题是基于行的时,请逐个阅读这些行.身高File.ReadLines()超过File.ReadAllLines().

  • 如果您的问题跨越整个文件(RegexOptions.Multiline可能包括模式中的换行符),则必须将其读入1个字符串.如果成为问题,请使用较小的文件.

  • 在所有情况下,使用常识和/或分析器.