为什么这种模式在java中需要很长时间才能匹配?

Noa*_*evo 2 java regex

以下正则表达式模式应用于非常长的字符串(60KB)时,会使java看起来"挂起".

.*\Q|\E.*\Q|\E.*\Q|\E.*bundle.*
Run Code Online (Sandbox Code Playgroud)

我不明白为什么.

Ste*_*n C 5

在正则表达式中你有5个急切/贪婪的量词,所以你很可能会做大量的回溯.

本文详细解释了这种行为,并提出了使您的正则表达式更好的建议.

在这种情况下,答案可能是用非贪婪的量子替换贪婪的量词,或者更好的是使用非回溯子模式.