Meine Frage ist ein wenig wortreich, also werde ich versuchen, es mit einem Beispiel zu erklären.Wie kann ich eine Zeichenfolge in Perl aufteilen, die Trennzeichen beibehalten und die Trennung zwischen den Trennzeichen sein?
Ich habe eine Datei, die etwas ähnlich zu XML ist, die ich analysieren muss, wenn auch nicht genau. Elemente in der Datei zeigen in der Regel nach oben ähnlich wie XML-Format, wie
<person><greeting>hello</greeting><goodbye>bye</goodbye></person>
ich die Datei in einzelne Sätze von Tags aufteilen wollte, so dass ein Element
<greeting>hello</greeting>
wäre und ein anderer wäre
<goodbye>bye</goodbye>
natürlich für ein leeres Element, <person>
und </person>
ihre eigenen Elemente am Ende werden, bin ich damit völlig in Ordnung, weil die wie ich die Datei als Ganzes analysieren möchte.
Das Problem, das ich renne, ist, wie man die ganze Datei am besten in ein Array aufteilt, weil es in der Datei überhaupt keine Zeilenumbrüche gibt, es wird so geschrieben, wie man es sieht. Ich habe versucht, es zu tun wie diese
my @array = split(/(><)/, $file)
aber das Problem ist, dass es nicht die Winkel Klammern als Teil des zugehörigen Tages nicht erhalten, sondern trennt sie aus. Gibt es eine Möglichkeit für mich, die Datei zwischen die> und < Zeichen zu teilen?
Wenn Ihre Datei nahe genug an XML ist, warum nicht einfach einen XML-Parser verwenden? – Gabe
Im Grunde sind das Hausaufgaben oder nahe genug dazu. Es ist eine Übung in regulären Ausdrücken, nicht im XML-Parsing, und wir wurden ermutigt, die XML-Bibliotheken nicht zu verwenden. –