Announcement

Collapse
No announcement yet.

Mit Regex String in bestimmte Abschnitte splitten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mit Regex String in bestimmte Abschnitte splitten

    Hallo zusammen,

    hätte mal wieder eine Frage bezüglich Regularexpressions.

    Folgendes Problem:

    Ich hab einen String variabler Länger, heißt es kann ein Text mit 1 Buchstaben, oder aber bis max 350 Buchstaben gespeichert werden.

    Jetzt muss ich diesen String aber in 75 Buchstaben große Teile aufsplitten, da diese so in ein spezielles Feld übergeben werden müssen.

    Dies ist doch bestimmt mit der Split Methode der RegexKlasse möglich oder?
    leider finde ich kein passendes RegexPattern, damit mir der String entsprechen gesplittet wird.

    Beispiel: ausgangsString ist der Text, der Text darf in Max 4 Teile geteilt werden. Diese müssen/können 75 Zeichen lang sein je nach länge des AusagangsStings

    Sollte also der Text 76 Zeichen Lang sein, dann soll der erste index des string Arrays 75 Buchstaben beinhalten, der zweite dann nur 1 Buchstaben. Wenn der Text 155 Lang ist, dann hat der erste Index 75 der zweite 75 und der dritte 5 Buchstaben.

    Hoffe das ist einigermaßen verständlich :-)

    So habe ich mal begonnen:


    string[] teilStrings = new string[4];
    if (!String.IsNullOrEmpty(ausgangsString))
    {
    string pattern = @"[\w]{0,75}"; //UND HIER BENÖTIGE ICH DAS EBTSPRECHENDE PATTERN
    Regex regex = new Regex(pattern);
    teilStrings = regex.Split(ausgangsString,4,0);


    }

    Irgendwie fehlt mit aber im Pattern etwas.

    Danke für eure Hilfe.
    Gruß
    Tom

  • #2
    Hallo Tom,

    warum willst du an der Stelle mit Regex arbeiten - in meinen Augen geht das einfacher mit String.SubString() - siehe angefügtes Beispiel. Allerdings musst du aufpassen: 4x 75 Zeichen ergeben insgesamt 300 Zeichen, also weniger als deine maximale Anzahl von 350.

    Code:
                string input = "123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456";
                int laengeProZeile = 75;
                int laenge = 0;
                string[] teilStrings = new string[4];
                for (int index = 0, i = 0; index < input.Length; index += laengeProZeile, i++)
                {
                    // maximal Restlänge oder laengeProZeile Buchstaben in den neuen String
                    laenge = Math.Min(laengeProZeile, input.Length - index);
                    teilStrings[i] = input.Substring(index, laenge);
                }
    mfg
    Björn

    Comment

    Working...
    X