gpt4 book ai didi

java - 大数据 block 的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:46 25 4
gpt4 key购买 nike

我有一个处理大 rtf 文件的任务,>500Мb。我需要从这些大文件中查找并提取部分内容。

这是一个工作原型(prototype),用 Java 编写,用于演示目的。

我创建了一个正则表达式,适用于较小的 rtf 文件 (~10Мb),并尝试将此表达式应用于大型文件。

执行此正则表达式时出现“堆栈溢出”错误。

据我了解,正则表达式具有递归性质,这就是我得到异常的原因。对于较小的文件,正则表达式运行良好且快速。

我理解的正确吗?

最佳答案

否:正则表达式没有递归性质。任何像样的语言都会简单地将此类表达式转换为有限状态机。这意味着它需要相同数量的内存(因此堆栈大小也相同)来过滤 10 MiB 或 500 MiB 的文件。此外,它会随时间线性扩展:预计过滤 500 MiB 的文件所需的时间比过滤 10 MiB 的文件所需的时间多 50 倍。

您使用正则表达式评估器做什么?对于 grep/sed 较小或较大的文件都不是问题。

关于java - 大数据 block 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24675090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com