Ich habe diesen Text
%Vor% in dem ich die Liste der Zahlen zwischen jedem o
und __
Wenn ich das tue
%Vor%Ich werde
bekommen %Vor%Aber ich hätte gerne
%Vor%Wie kann ich das tun?
Sie müssen .exec()
für ein reguläres Ausdrucksobjekt verwenden und es wiederholt mit dem g-Flag aufrufen, um folgende Übereinstimmungen zu erhalten:
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: Ссылка .
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%Tags und Links javascript regex