C#大型文件上的正则表达式,部分完成或完成百分比

C#大型文件上的正则表达式,部分完成或完成百分比,c#,regex,C#,Regex,我想知道在Regex对象查找匹配项时,是否有任何方法可以从中获取统计信息 我有一个非常大的文本文件(+800kb),我正在匹配一个相当复杂的正则表达式,需要2-5分钟才能完成一些文件。我有没有办法把文件分成小块?或者有没有办法完成百分比,这样我就可以知道我还有多少时间 谢谢:)您的正则表达式需要作为一个字符串应用于整个文件,还是可以一次应用一行?这会让你以一种相当明显的方式给出进度,尽管你需要阅读所有的行来开始,当然是为了给出一个比例的进度,而不仅仅是“完成N行” 我不相信有任何方法可以询问已经

我想知道在Regex对象查找匹配项时,是否有任何方法可以从中获取统计信息


我有一个非常大的文本文件(+800kb),我正在匹配一个相当复杂的正则表达式,需要2-5分钟才能完成一些文件。我有没有办法把文件分成小块?或者有没有办法完成百分比,这样我就可以知道我还有多少时间


谢谢:)

您的正则表达式需要作为一个字符串应用于整个文件,还是可以一次应用一行?这会让你以一种相当明显的方式给出进度,尽管你需要阅读所有的行来开始,当然是为了给出一个比例的进度,而不仅仅是“完成N行”


我不相信有任何方法可以询问已经在执行的正则表达式的进度。

您正在同时对整个文件运行正则表达式?如果是,那么就不是。如果你逐行运行它,只需保留一个你在哪一行的计数器,然后每隔一段时间打印出行号。

你是否可以预测一个可以定义块(保证不破坏正则表达式)的超集?i、 e,您知道文件中有一个分隔符,它不会被您的正则表达式捕获吗?如果没有,我想你可能做不到

“将文档分解为更小的块”:这是必要的,但只有您知道如何分解为更小的块。最简单的方法可能是逐行分割文件,但这取决于文件包含的内容“我有一个非常大的文本文件(+800kb)”--这是一个很大的文件,你在运行什么?你的正则表达式可以匹配多行吗?1 mb文本文件>100页打印文本。idk,我认为这是“非常大的文本文件”。最大的是~450页如果内存中的所有行都无法保存(虽然800kb似乎不是这样),您可以保留到目前为止处理的行中的总字节数,并使用该字节数与文件大小之间的比率。我确实需要将正则表达式应用于整个文件。这是一个有很多格式的PDF。我确实找到了一种方法,将其解析为重复出现的块,然后在这些块上运行正则表达式。谢谢你的帮助!这就是我最后做的。它不仅加快了搜索速度,而且还能按百分比进行搜索。谢谢