加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:55:26 所属栏目:百科 来源:网络整理
导读:我找不到关于这个主题的任何内容,所以我想知道是否有人比较了不同语言之间正则表达式匹配的速度.我想知道哪种语言可以更快地进行正则表达式评估,因为在我当前的项目中,我需要不断地评估大量的正则表达式.语言的选择将主要基于这种表现. 我的想法是C/C++自然
我找不到关于这个主题的任何内容,所以我想知道是否有人比较了不同语言之间正则表达式匹配的速度.我想知道哪种语言可以更快地进行正则表达式评估,因为在我当前的项目中,我需要不断地评估大量的正则表达式.语言的选择将主要基于这种表现.

我的想法是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的选项以实现显着的性能提升.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读