Regulärer Ausdruck, um beim ersten Spiel zu stoppen
Meine regex-Muster so ähnlich aussieht, wie
<xxxx location="file path/level1/level2" xxxx some="xxx">
Ich bin nur daran interessiert, den Teil in Anführungszeichen zugewiesen Lage. Sollte es nicht so einfach werden, wie unten, ohne die gierigen wechseln?
/.*location="(.*)".*/
Scheint nicht zu funktionieren.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Ihren regulären Ausdruck nicht gierig, da standardmäßig
"(.*)"
passen alle"file path/level1/level2" xxx some="xxx"
.Stattdessen können Sie Ihre dot-Sterne-gierig, was machen Sie mit so wenig Zeichen wie möglich:
Hinzufügen eines
?
auf einen Quantifizierer (?
*
oder+
) macht es nicht gierig.InformationsquelleAutor der Antwort
location="(.*)"
passen von der "nachlocation=
bis die" nachsome="xxx
es sei denn, Sie machen es nicht gierig. Daher muss man entweder.*?
(D. H. non-greedy) oder besser ersetzen.*
mit[^"]*
.InformationsquelleAutor der Antwort
Wie etwa
Dies vermeidet die unbegrenzte Suche mit .* und passen genau an das erste Zitat.
InformationsquelleAutor der Antwort
Verwenden Sie non-greedy matching, wenn Ihr Motor unterstützt. Fügen Sie die ? innerhalb der Aufnahme.
InformationsquelleAutor der Antwort