regex - 正则表达式匹配重复的最佳实践

标签 regex

我想知道哪一个是匹配两次或三次(或类似)事件的更有效方法,例如在 url 中:

http://domain.com

如果我要匹配双斜杠“//”,哪个效率更高:

这个:

\/\/

或者这个

\/{2}

想象一下,对于一些更长、更复杂的场景,然后建议哪种方式更有效?

谢谢。

最佳答案

我建议使用:

(?:pattern}{2}

出于这些原因:

  1. 你不想重复冗长的模式
  2. range 性能更好,因为正则表达式引擎不需要处理相同的模式两次
  3. 很容易将范围扩展到 {4}{5,10} 等,但重复做同样的事情并不容易

检查这 2 个演示链接以证实性能部分:

关于regex - 正则表达式匹配重复的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35534325/

相关文章:

python - 正则表达式中 "|"与 .* 的替代匹配的行为

regex - 为什么我的网站在实现 WP Rocket 后没有完全呈现?我在控制台中收到 "Uncaught SyntaxError: Invalid regular expression: missing/"

javascript - 使用正则表达式匹配最大项目数

jquery - 如何使用 jquery 将正则表达式模式包装在 <b> 标记中

javascript - 使用 ng-pattern 的 Angular 中的意外验证行为

Javascript正则表达式与替换

Ruby 将字符串 ($100.99) 转换为 float 或 BigDecimal

MySQL 正则表达式 : How to match digits in the string with\d?

regex - 为什么 Perl 6 语法原型(prototype)的正文中不能有任何内容?

Java正则表达式。不包括定界符的组