Javascript - Regex Zugriff auf mehrere Vorkommen [duplizieren]

8

Ich habe diesen Text

%Vor%

in dem ich die Liste der Zahlen zwischen jedem o und __

erhalten muss

Wenn ich das tue

%Vor%

Ich werde

bekommen %Vor%

Aber ich hätte gerne

%Vor%

Wie kann ich das tun?

    
Pierre de LESPINAY 02.09.2011, 07:50
quelle

3 Antworten

12

Siehe diese Frage :

%Vor%     
soldier.moth 02.09.2011, 07:57
quelle
10

Sie müssen .exec() für ein reguläres Ausdrucksobjekt verwenden und es wiederholt mit dem g-Flag aufrufen, um folgende Übereinstimmungen zu erhalten:

%Vor%

Der Status aus der vorherigen Übereinstimmung wird im Objekt für den regulären Ausdruck als lastIndex gespeichert. Dies ist der Ausgangspunkt der nächsten Übereinstimmung.

Sie können sehen, dass es hier funktioniert: Ссылка

Die Verwendung der Regexp auf diese Weise wird hier beschrieben: Ссылка .

    
jfriend00 02.09.2011 08:02
quelle
3
%Vor%

Das sollte funktionieren. Klicken Sie hier und suchen Sie nach "fauler Stern".

%Vor%

Jek-fdrv wies in den Kommentaren darauf hin, dass einige Ergebnisse übersprungen werden, wenn man rx.test kurz vor der while-Schleife aufruft. Das liegt daran, dass das RegExp-Objekt ein lastIndex-Feld enthält, das den Index der letzten Übereinstimmung in der Zeichenfolge verfolgt. Wenn sich lastIndex ändert, behält RegExp den Vergleich bei, indem es mit dem Wert lastIndex beginnt. Daher wird ein Teil der Zeichenfolge übersprungen. Ein kleines Beispiel kann helfen:

%Vor%     
CaNNaDaRk 02.09.2011 07:53
quelle

Tags und Links