Ich versuche alle möglichen Übereinstimmungen aus einem String mit javascript regex zu erhalten. Es scheint, dass meine Methode, dies zu tun, Teile der Zeichenfolge nicht übereinstimmen, die bereits abgeglichen wurden.Javascript Regex - Suche alle möglichen Übereinstimmungen, auch in bereits erfassten Spiele
Variablen:
var string = 'A1B1Y:A1B2Y:A1B3Y:A1B4Z:A1B5Y:A1B6Y:A1B7Y:A1B8Z:A1B9Y:A1B10Y:A1B11Y';
var reg = /A[0-9]+B[0-9]+Y:A[0-9]+B[0-9]+Y/g;
Code:
var match = string.match(reg);
Alle ich abgeglichen Resultate erhalten:
A1B1Y:A1B2Y
A1B5Y:A1B6Y
A1B9Y:A1B10Y
Matched Ergebnisse Ich möchte:
A1B1Y:A1B2Y
A1B2Y:A1B3Y
A1B5Y:A1B6Y
A1B6Y:A1B7Y
A1B9Y:A1B10Y
A1B10Y:A1B11Y
In meinem Kopf möchte ich A1B1Y:A1B2Y
, um ein Spiel zusammen mit A1B2Y:A1B3Y
, obwohl A1B2Y
in der Zeichenfolge muss Teil von zwei Übereinstimmungen sein.
Ein Lookahead würde dir die gewünschten Matches liefern, aber leider liefert es nicht den Teil des Lookaheads. Ich habe keine Möglichkeit gefunden, den Lookahead mit Javascript zu erfassen. Vielleicht gibt es, weiß nicht. Ihre Regex mit Lookahead wäre: var reg =/A [0-9] + B [0-9] + Y (? =: A [0-9] + B [0-9] + Y)/g; – Someone
@Mantriur: Siehe meine Antwort ... – nhahtdh
Vielleicht 'string.split (": ")' und dann Schleife über das Array könnte Ihnen ein besseres Ergebnis geben. – Bergi