gpt4 book ai didi

语言或库之间的正则表达式性能

转载 作者:行者123 更新时间:2023-12-05 00:04:55 28 4
gpt4 key购买 nike

我找不到关于这个主题的任何信息,所以我想知道是否有人比较了不同语言之间正则表达式匹配的速度。我想知道哪种语言可以更快地进行正则表达式评估,因为在我当前的项目中,我需要不断评估大量的正则表达式。语言的选择将主要基于这种表现。

我的想法是 C/C++ 自然会更快,但我想尽可能避免它,我不确定我是否正确。例如,C# 库可能使用带有 P/Invoke 的 native 代码,因此速度差异可能是荒谬的。但我不知道该选择什么库,或者我是否需要围绕 C++ 库创建一个包装器(哪个?)。

最佳答案

什么样的正则表达式?他们会使用前瞻、后视、反向引用、勉强量词、原子组、所有格量词等功能吗?

其他响应者已链接到 regex-dna benchmark ,但它仅使用所有正则表达式共享的最基本功能,例如 Kleene 星形 ( * ) 和交替 ( | )。因此,虽然 GNU C/C++ 实现似乎是明显的赢家,但如果您需要我上面列出的任何功能,它们对您没有任何好处。

另一个考虑因素是 Unicode 支持。如果您正在处理实际文本(而不是表示为文本的数据,如 regex-dna 基准测试),您应该使用具有良好 Unicode 支持的正则表达式风格。

我建议你研究一下 C#。 .NET regex 风格并不以缓慢而著称(这是您可以说的关于 regex 速度 IMO 的唯一明智的说法),并且对于性能关键的应用程序,它提供了 compiling directly to byte code 选项。以获得显着的性能提升。

关于语言或库之间的正则表达式性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127089/

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