为什么我的regex语句与单独的语句相比表现不佳?

为什么我的regex语句与单独的语句相比表现不佳?,regex,sublimetext3,Regex,Sublimetext3,运行此regexpr可能会导致500行小文档超时。如果电脑真的能用,那就需要很长时间 ^(\s+)([if|foreach|else].*?\)) ([a-z]|\$) 相反,分别并连续运行以下3个regexpr ^(\s+)(if.*?\)) ([a-z]|\$) ^(\s+)(else.*?\)) ([a-z]|\$) ^(\s+)(foreach.*?\)) ([a-z]|\$) 运行速度比第一个快得多 为什么? 我已经用Supreme-Text-3 reg表达式对此进行了测试。我已经

运行此regexpr可能会导致500行小文档超时。如果电脑真的能用,那就需要很长时间

^(\s+)([if|foreach|else].*?\)) ([a-z]|\$)
相反,分别并连续运行以下3个regexpr

^(\s+)(if.*?\)) ([a-z]|\$)
^(\s+)(else.*?\)) ([a-z]|\$)
^(\s+)(foreach.*?\)) ([a-z]|\$)
运行速度比第一个快得多

为什么?


我已经用Supreme-Text-3 reg表达式对此进行了测试。我已经在www.regexr.com上对它进行了测试。

^\s+?:if | foreach | else.*.\[a-z]\$这些模式并不完全相同。[…]表示a,因此它匹配i、f、|、o、r、e、a、c等的任何一个字符,而不是使用管道。哦,我发现我误解了类的用法。那么这个问题呢,在评论中已经得到了回答。你认为这个问题可以重述并且仍然有价值,还是删除这个问题更好?关于机智行事的建议?