Kommentare 1

Regex-Rezept: Sektionsblöcke in INI-Dateien finden

Problem
Sie müssen jeden vollständigen INI-Sektionsblock finden (also eine Sektionsüberschrift und alle Name/Wert-Paare der Sektion), um eine INI-Datei aufzuteilen oder jeden Block getrennt zu verarbeiten.

Lösung
In Rezept 8.12 wurde gezeigt, wie man die Sektions-Überschrift in einer INI-Datei findet. Um eine gesamte Sektion zu finden, beginnen wir mit dem gleichen Muster aus dem Rezept, suchen aber weiter, bis wir das Ende des Strings oder ein Zeichen [ finden, das am Anfang einer Zeile steht (da damit der Anfang einer neuen Sektion beginnt):

regex813_1

Diskussion
Dieser reguläre Ausdruck findet zunächst mithilfe des Musters ‹^\[[^\]\r\n]+]› eine Sektionsüberschrift in einer INI-Datei. Dann sucht er Zeile für Zeile weiter, sofern sie nicht mit [ beginnt. Schauen Sie sich den folgenden Ausgangstext an:

regex813_2
In diesem String findet die Regex zwei Übereinstimmungen. Die erste reicht vom Anfang des Strings bis zu der leeren Zeile vor „[Sektion2]“. Die zweite Übereinstimmung reicht vom Anfang der Überschrift von Sektion2 bis zum Ende des Strings.

Weitere hilfreiche reguläre Ausdrücke finden Sie im soeben erschienenen Reguläre Ausdrücke Kochbuch. Anhand von über 100 Rezepten für C#, Java, JavaScript, Perl, PHP, Python, Ruby und VB.NET lernen Sie, neue Tricks anzuwenden, sprachspezifische Fallen zu umgehen und wertvolle Zeit zu sparen.

Sag's weiter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert