gpt4 book ai didi

ruby - 一个在 Ruby 上表现非常糟糕的简单正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 06:33:35 27 4
gpt4 key购买 nike

我有一个简单的 Ruby 正则表达式,需要很长时间才能计算:

"fußball "*20 =~ /^([\S\s]{1000})/i

如果我删除 /i 标志,它会工作得非常快。为什么运行这么慢? (我没有等到执行完毕)

我知道这个正则表达式可能没有意义,但我想知道幕后是什么。


错误报告:https://bugs.ruby-lang.org/issues/14418

最佳答案

默认 . 不匹配换行符。 [\s\S] 是解决该问题的方法。在 Ruby 中,您可以使用/m 标志使点匹配所有字符。它在文档中 Ruby Metacharacters and Escapes

[\S\s] 由于未知原因非常慢,但您可以将其更改为 "fußball "*20 =~/^(.{1000})/mi 相同但速度更快

关于ruby - 一个在 Ruby 上表现非常糟糕的简单正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503203/

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