我正在编写一个解析器,标记由正则表达式识别。
我对每个输入行都使用正则表达式,尽管每个正则表达式本身都很短并且匹配的字符串也很短(几个字符,最多 10 个)。
在this发布了使用 javascript 的浏览器的正则表达式速度比较测试,显示速度从 0% 提高到 20%。
java和android是什么情况?预编译我的正则表达式会使我的扫描显着更快吗? (我知道这不会让他们变慢)
是否存在我必须在同一正则表达式上运行才能看到任何差异的最少匹配数?
最佳答案
首先,请记住这篇文章讨论的是 Javascript 正则表达式是否存储在变量中。这与预编译正则表达式 AFAIK 不同。
但是,即使是;要真正知道哪个更好,您必须测试所使用的实际正则表达式。如果一个被使用多次,它可能是值得的。
但是如果你要运行许多“随机”正则表达式,这可能不是一个好主意,因为你最终可能会在内存中闲置大量正则表达式,懒惰,看电视,吃零食...
所以,我的答案还是;在“真实世界”的情况下对其进行测试。即使这意味着发布您的应用并在以后对其进行修改。
关于java - 使用预编译的正则表达式模式提高速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075418/