Laden...

Liste mit Regex prüfen, dann in String umwandeln

Erstellt von mysharp55 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.593 Views
M
mysharp55 Themenstarter:in
17 Beiträge seit 2015
vor 9 Jahren
Liste mit Regex prüfen, dann in String umwandeln

Hi!

Ich habe eine Textdatei mit folgendem Inhalt:

max Mustermann dddsds sdsd - sdsdsds (ich bin c# anfänger) bbbbb aa ccccdcdc

Ich möchte bei jedem Auftreten von 2 Leerzeilen einen Zeilenumbruch einfügen.
Anschließend möcte ich das Ergebniss als Liste zurück geben.

Leider erhatle ich keine Ausgabe - was mache ich falsch?

Ansatz von hier:
https://msdn.microsoft.com/de-de/library/twcw2f1c%28v=vs.110%29.aspx

Hier mein Versuch:


public string TracksSortieren(string dateiInhalt)
        {
            string text = dateiInhalt;
            string pattern = @"([\s])*\1{2,}"; //Stelle finden wo mindestens 2 Leerzeilen aufeinander folgen

            string neuerText;

            Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);

            Match match = regex.Match(text);

            while (match.Success)
            {
                neuerText = text + "\n";
                match = match.NextMatch();
            }

                     
            return neuerText;

        }

leider funktioniert die retunr Anweisung nicht, da die variable "neuerText" ja in der while-Schleife deklariert wird > wie kann ich das ändern?

Als Anfänger tue ich mich noch schwer... Ist das ganze zu Umständlich?

Danke schon jetzt für eure Mühe.

P
157 Beiträge seit 2010
vor 9 Jahren

Deine Variable neuerText wurde nicht in der while Schleife deklariert,
sondern in Zeile 6. Besser ist es aber, du definierst es gleich:

string neuerText = null;

Das Problem ist aber, dass du neuerText immer überschreibst, das zu korrigieren ist ein bisschen mehr Arbeit glaub ich.
Aber ich habe einen einfachen Vorschlag für dich:
verwende einfach String->Replace, du benötigst ja keine Regex, da deine Zeichenfolge feststeht.

return text.Replace("  ","\r\n");

Wenn du trotzdem Regex benutzten möchtest, dann nutze dafür auch die Replace-Funktion der Regex Klasse. 😉

M
mysharp55 Themenstarter:in
17 Beiträge seit 2015
vor 9 Jahren

Super Danke!

 return text.Replace("  ","\r\n"); 

Passt perfekt!