我有一个简单的Ruby正则表达式需要很长时间来计算:
"fußball "*20 =~ /^([\S\s]{1000})/i
Run Code Online (Sandbox Code Playgroud)
如果我删除/i旗帜,它的工作速度非常快.它为什么这么慢?(我没等待执行完成)
我知道这个正则表达式可能没有意义,但我想知道什么是引擎盖下的.
默认情况下.不匹配换行符。[\\s\\S]是解决这个问题的一个技巧。在 Ruby 中,您可以使用 /m 标志使点匹配所有字符。它位于文档Ruby Metacharacters and Escapes中
[\\S\\s]由于未知原因非常慢,但您可以将其更改为"fu\xc3\x9fball "*20 =~ /^(.{1000})/mi具有相同但更快的功能
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |