我需要使用以下正则表达式对多个PHP文件进行重要检查:
\$this\->(m_\w+)(?!(.|\v)*private \$\1)
但是我的IDE(Sublime Text 2)说它在尝试匹配正则表达式时耗尽了堆栈空间。它适用于非常小的文件,但我需要检查的文件都不够小。那么如何优化正则表达式以使其适用于任何长度的文本?
答案 0 :(得分:4)
您可以使用以下方法提高图案速度:
\$this->(m_\w++)(?!(?>[^p]++|\Bp++|p(?!rivate \$\1\b))++private \$\1\b)