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

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

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

什么样的正则表达式?他们会使用诸如前瞻,外观,反向引用,不情愿的量词,原子组,占有量词等等功能吗?

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

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

我建议你看看C#. .NET正则表达式的味道并不具有缓慢的声誉(这是关于正则表达式速度IMO的唯一明智之举),而对于性能关键型应用程序,它提供了compiling directly to byte code的选项以实现显着的性能提升.

相关文章
相关标签/搜索