Ich versuche, eine Datei mit mehreren Zeilen zu lesen wie folgt:Differenziert die Zeichenfolge mit doppelten Anführungszeichen aus Zeichenfolge ohne Anführungszeichen mit regex
<Property authority="Design" name="X">2538.0</Property>
<Property authority="Design" name="Y">-226.084564</Property>
<Property authority="Design" name="Z">393.511932</Property>
<Property authority="Design" name="Diameter2">0.0</Property>
<Property authority="Design" name="AssemblyID">WDLX6B-S11135-Y</Property>
<Property authority="Design" name="AssemblyRev">55</Property>
Ich brauche zur Suche/match „Y“ (Linie No: 2) nur um den Wert zu extrahieren. Ich habe folgende Zeilen geschrieben.
Damit wählt der Code die Zeile Nr. 2 sowie die Zeile Nr. 5, die auch Y in der Zeile hat. Die Ausgabe ist wie folgt:
<Property authority="Design" name="Y">-226.084564</Property>
['-226.084564']
<Property authority="Design" name="AssemblyID">WDLX6B-S11135-Y</Property>
[]
Ich brauche nur Line-Nr. 2 zu picken. Ich habe bereits versucht, Regex zu folgen.
if re.findall(r' \\"Y\\" ',line):
Aber es ist falsche Syntax. Kann mir jemand vorschlagen, wie man "Y" von Y unterscheidet? Es könnte andere Wege geben, zu vermeiden, dass die Linie Nr. 5 ausgewählt wird. Aber ich muss verallgemeinerten Code für X, Y & Z machen, so dass nur entsprechende Zeilen ausgewählt werden. Vielen Dank.
Verwenden Sie das 'lxml'-Modul, um XML richtig zu analysieren, sonst treten Probleme auf. Regexes werden nicht zum Analysieren von XML verwendet. –
Warum bekomme ich eine negative Bewertung für diese Frage? – makino
, weil es eine schlechte Idee ist, XML mit Regex zu analysieren. Verwenden Sie die richtigen Werkzeuge. Und in jeder anderen Form ist dies wahrscheinlich ein Duplikat einer anderen Frage. –