Es gibt nichts "falsch" mit per se, aber es ist schrecklich, weil mit den meisten RE-Engines (Sie sagen nicht, welche Sie verwenden), wenn es nicht mit der ersten Sache übereinstimmt, weil es versucht Es bewirkt, dass die Engine zurückläuft und viele verschiedene Möglichkeiten ausprobiert (von denen keine jemals eine Übereinstimmung verursachen kann). Es ist also kein Problem, sondern nur eine Maschine, die versucht, zwei Operationen auszuführen, um zu sehen, ob eine Übereinstimmung möglich ist. Entschuldige, wenn ich nicht darauf warte!
Natürlich ist es theoretisch für den RE-Compiler möglich, den (.|\s)
-Teil des RE in etwas zu verschmelzen, mit dem es nicht zurückzugehen braucht. Einige RE-Engines tun dies (typischerweise die mehr automatentheoretischen), aber viele nicht (die Stack-basierten).
Mehr als 280 ist nicht zwischen 1 und 280 inklusive. – Gumbo
Wie groß ist die Eingabe? Kannst du etwas spezifischer über "hängen" sein? – dheerosaur
@Gumbo das ist nicht der Punkt - anstatt nur versagen, es hängt, d. H. Eine übermäßig lange Zeit dauern. –