MudGuard: Gleicher Aufruf - unterschiedliche Ergebnisse

Beitrag lesen

Hi,

Wenn ich den Ratschlag von Struppi beherzige, funktioniert es auch und zwar sogar mit den Klammern  u n d   dem "g".
Es stellt sich also die Frage, warum es in meiner Variante mit "g" nicht funktioniert.

Weil ein und dasselbe Regex-Objekt benutzt wird.

Beim ersten Aufruf von test wird vom String-Anfang an gesucht, die erste Folge von ausreichend vielen Ziffern wird gefunden.

Beim zweiten Aufruf wird aufgrund des g-Flags dort weitergemacht, wo beim ersten Mal das Ende des Treffers war.
Wenn der String nur eine ausreichend lange Zifferngruppe enthält, wird bei dieser zweiten Suche nichts mehr gefunden.

Beim dritten Aufruf würde dann, da die zweite Suche das Stringende erreicht hat, wieder am Stringanfang begonnen (IIRC).

Ohne das g-Flag wird bei jedem Aufruf von test zuerst die Suchposition auf den Stringanfang gesetzt.

Und wenn jedes Mal mit new ein neues Regex-Objekt erzeugt wird, wird auch jedesmal am Stringanfang mit der Suche begonnen, weil das bei einem neuen Regex-Objekt immer so ist.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.