RegEx: Match N-te vorkommen
Habe ich den folgenden string:
_name=aVlTcWRjVG1YeDhucWdEbVFrN3pSOHZ5QTRjOEJZZmZUZXNIYW1PV2RGOWYrczBhVWRmdVJTMUxYazVBOE8zQ3JNMmNVKzJLM2JJTzFON3FiLzFHUE0xY0pkdz09LS1jbkkwaWoxUUl3YVhMMkhtZHpaOW13PT0"%"3D--57356371d167f"
Ich passen wollen alles zwischen =
und das Ende "
(Hinweis: es gibt auch andere Zitate nach diesem so kann ich nicht wählen Sie einfach die letzten "
).
Versuchte ich mit _name=(.*?)"
aber es gibt auch andere Anführungszeichen in den string auch. Gibt es eine Möglichkeit, entsprechend der 3. quote? Ich habe versucht _name=(.*?)"{3}
aber die {3}
Spiele für die Zitate zurück, um, D. H. """
Können Sie versuchen, es hier
- setzen
"
innerhalb der Klammer. - Diese nur noch Spiele bis auf das erste Zitat
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie diese regex:
RegEx-Demo
"
ins Spiel. Ich denke, das ist nicht das, was der OP will..."
. Ich wollte es nicht erfassen weiter"
s_name=(?:[^"]*"){2}[^"]*
word word word
, wie würde ich erfassen die N-te "Wort"_name=(?:.*?word){3}
"
..Wenn Sie wollen, zu entsprechen, wird alles zwischen der ersten und der Dritten(!) doppelte Anführungszeichen (der Dritte ist nicht unbedingt die Letzte, Sie sagte), Sie können verwenden Sie ein Muster wie dieses:
Ausgabe:
Original Antwort:
Ich bin mir nicht sicher, ob ich dich korrekt, aber es klingt wie Sie möchten, führen Sie eine sogenannte gierig match, das heißt, Sie wollen mit der Zeichenfolge bis zum letzten
"
unabhängig davon, ob der string enthält mehrere"
s.Zum ausführen eines greedy-match, legen Sie einfach das
?
wie diese:Versuchen kann man es hier: https://regex101.com/r/uC5eO9/2