Ich habe eine einfache regulären Ausdruck (in C# verwendet):Wie lässt sich der reguläre Ausdruck nicht zu viele Schritte machen?
\becua(?:[a-zA-ZáéíóúñÑÑäëïöü])*\b(.(?!embajada))*\s+embajada
1) Wörter mit "ecua"
2) ausgehend Was auch immer das nach diesem
3) Das Wort "embajada" danach kommt " was auch immer "
Aber es macht zu viele Schritte, wie kann ich das verhindern? Ich möchte nur, dass es die Charaktere übergibt, bis es das Wort "embajada" findet und nicht bei jedem einzelnen Zeichen rückwärts läuft. Dies scheint einfacher regulärer Ausdruck, aber wenn ich einen größeren Text verwenden wirft es einen katastrophalen Rückzieher (oder Timeout), wenn das Muster
nichtBeispiel: https://regex101.com/r/tQ7mM9/4
Vielen Dank im Voraus
Sie verwenden müssen '(? = Embajada)' statt '(?! Embajada) ', ich denke – rock321987
Es gibt kein Wort" embajada "in Ihrem Text, dort ist nur" gembajada ". –
Ich würde es aufrollen: https://regex101.com/r/iR5eW3/1 –