Ich versuche gierige Streichholzstring und markieren Sie es als Gruppe, bis es Raum Strich trifft (-). Bisher habe ich bekam:Leerzeichen Bindestrich als Trennzeichen für Gruppenübereinstimmung
^ *-{2}([\w\d-]+)(=([ \w\d-]+))?(.*)|(.+)
und mein Test-String ist:
--match1=match2
--match1=match2 match2
--match1=match2 match2-match2
--mat-ch1=match2 match2
--match1=match2-match2 match2
--match1=match2 -lastmatch
--match1=match2 --lastmatch
--match1 -lastmatch
--match1 --lastmatch
lastormatch
Jede jede Art von Spiel (match1
, match2
, lastmatch
, lastormatch
) sollten in Gruppen eingeteilt werden, wenn sie nebeneinander. Dies funktioniert für jede Zeile mit Ausnahme von 6 und 7. Grundsätzlich sollte '' als Begrenzer fungieren, wenn es um match2
Gruppe geht (aber -
umgeben von /w/d
ist in Ordnung als Teil der Zeichenfolge innerhalb der Gruppe). Ich weiß, dass Lookahead/Lookbehind verwendet werden sollte, aber ich kann es nicht richtig machen.
What I have Vergleich zu what I need
regex101.com
Sie haben nicht konkretisieren, was und –
7. 6 für Fälle ist genau Gruppenstruktur erwartet - (match1) = (match2) (-lastmatch) - (match1) = (match2) (--lastmatch) Lassen Sie uns sagen, dass hier Klammer zeigt, wo die Gruppe sein sollte. –
Entschuldigung, keine Ahnung, was Sie brauchen. Bitte fügen Sie Erklärungen zu der Frage hinzu –