12 Stimmen

Wie kann ich eine Zeichenkette zwischen passenden geschweiften Klammern in Perl extrahieren?

Meine Eingabedatei sieht wie folgt aus:

HEADER 
{ABC|*|DEF {GHI 0 1 0} {{Points {}}}}

{ABC|*|DEF {GHI 0 2 0} {{Points {}}}}

{ABC|*|XYZ:abc:def {GHI 0 22 0} {{Points {{F1 1.1} {F2 1.2} {F3 1.3} {F4 1.4}}}}}

{ABC|*|XYZ:ghi:jkl {JKL 0 372 0} {{Points {}}}}

{ABC|*|XYZ:mno:pqr {GHI 0 34 0} {{Points {}}}}

{
    ABC|*|XYZ:abc:pqr {GHI 0 68 0}
        {{Points {{F1 11.11} {F2 12.10} {F3 14.11} {F4 16.23}}}}
        }
TRAILER

Ich möchte die Datei in ein Array extrahieren, wie unten dargestellt:

$array[0] = "{ABC|*|DEF {GHI 0 1 0} {{Points {}}}}"

$array[1] = "{ABC|*|DEF {GHI 0 2 0} {{Points {}}}}"

$array[2] = "{ABC|*|XYZ:abc:def {GHI 0 22 0} {{Points {{F1 1.1} {F2 1.2} {F3 1.3} {F4 1.4}}}}}"

..
..

$array[5] = "{
    ABC|*|XYZ:abc:pqr {GHI 0 68 0}
        {{Points {{F1 11.11} {F2 12.10} {F3 14.11} {F4 16.23}}}}
        }"

Das heißt, ich muss die erste öffnende geschweifte Klammer mit der schließenden geschweiften Klammer abgleichen und die dazwischen liegende Zeichenkette extrahieren.

Ich habe mir den unten stehenden Link angesehen, aber er trifft nicht auf meine Frage zu. Regex zum Ermitteln der Zeichenkette zwischen geschweiften Klammern "{Ich will das, was zwischen den geschweiften Klammern steht}"

Ich versuche es, aber es wäre wirklich hilfreich, wenn mir jemand mit seinem Fachwissen helfen könnte ...

Danke Sri ...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X