Frage:Java RegexMuster auf mehr von gleichen Tags passend
Wie kann ich <tag TAG1>SOME VALUE</tag TAG1><tag TAG1>ANOTHER VALUE</tag TAG1>
als 2 separate Werte erfolgreich Vorstellungen?
Hintergrund:
ich versucht bin eine Zeichenfolge entsprechen als solche <tag TAG1>SOME VALUE</tag TAG1><tag TAG1>ANOTHER VALUE</tag TAG1>
Wo TAG1
ist der Name dieser spezifischen Tag (mehrere Tags mit dem gleichen Namen, aber unterschiedliche Werte haben kann) und SOME VALUE
, ANOTHER VALUE
sind unterschiedlich Werte, die von den Tags eingeschlossen sind.
Bisher bin ich in der Lage ein Paar von Tags als solche <tag TAG1>SOME VALUE</tag TAG1>
mit dem RegexMuster übereinstimmen <\\s*tag\\s*.+\\s*>(.*)</\\s*tag\\s*.+\\s*>
Das obige Beispiel ist ein Worst-Case-Szenario ohne Zeichen das Ende des ersten Tag und dem Start Trenn von der Sekunde. Mein Problem ist, wenn ich find()
mit meiner Regex-Zeichenfolge ausführen, bekomme ich beide Tags, als ob sie ein Tag wären.
Das Problem ist mit dem Platzhalter zwischen den Tags (.*)
, weil es das Ende/den Anfang eines Tags nicht ausschließt. Ich brauche die Wildcard-Übereinstimmung, weil ein beliebiges Zeichen (einschließlich \n
) in den Tags enthalten sein könnte. Ich verwende auch Pattern.DOTALL
, um 1 Tag erfolgreich mit Zeilenumbrüchen zu verknüpfen.
Wie @R Nar erwähnt auf dieser letzten [Python Frage] (http://stackoverflow.com/ Fragen/37446964/simple-regex-for-simple-xml-string): [regex nicht zum parsen von xml] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except- xhtml-self-contained-tags/1732454 # 1732454) – Parfait
Es ist nicht unbedingt XML, nur eine schnelle Version zum Erstellen/Lesen von Eingabedateien eine Vorlage Datei gegeben. Alles funktioniert jetzt wie erwartet :) – Chris