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): 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: 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, …