gpt4 book ai didi

ruby - ruby 1.9.2 的新正则表达式引擎 (Oniguruma) 很慢吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:12:34 24 4
gpt4 key购买 nike

我最近从 Rails 2 迁移到 Rails 3,因此获得了 ruby​​ 1.9.2 默认提供的新正则表达式引擎。

我听说过很多关于这个正则表达式引擎的好消息。但是,我的应用程序中严重依赖正则表达式的部分变得非常慢。
这就是我想要实现的:我需要检查一个字符串中的某些特定关键字。一旦我点击了一个关键字,我需要修改字符串以根据匹配的关键字添加指向某个站点的链接。一个字符串可能包含多个这样的关键字,我需要检查该字符串是否有数千个关键字。所有这一切都需要在几分钟内完成,并且一切都按照 ruby​​ 1.8.7 中的逻辑正常运行。

以前它在几秒钟内完成,现在需要几个小时。我比较了今天同时运行两者,ruby 1.8.7 在 2 秒内完成,而 1.9.2 花了 1.5 小时!明显有问题。

我的正则表达式如下:

/.*\b(sometext)\b/i

问题:

  1. 在 ruby​​ 1.9.2 中,我是否需要用不同的正则表达式来表达,或者是否有其他一些技巧可以加快匹配过程?
  2. 最坏的情况,有没有办法将 ruby​​ 1.8.7 正则表达式引擎与 ruby​​ 1.9.2 一起使用?

最佳答案

您可以完全从正则表达式中删除 .*。它所做的只是匹配整个字符串,然后回溯直到找到您的搜索字符串。删除它,看看它是否仍然很慢。

关于ruby - ruby 1.9.2 的新正则表达式引擎 (Oniguruma) 很慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484748/

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