none
Anzahl von Punkten in einer Zeichenfolge RRS feed

  • Frage

  • Ich suche nach einer Möglichkeit, die Anzahl der Punkte in einer Zeichenkette zu erkennen. Dazu hatte ich folgendes mit Regex probiert:

    Regex regex = new Regex(".");
    int pointcount = 0;
    foreach (Match match in regex.Matches(parsestring))
    {
                pointcount++;
    }

    Das funktioniert nicht, da ich z. B. bei ".1" als Punkte-Anzahl 2 erhalte. Wie muss der Ausdruck bei der Suche nach Punkten sein?

    Gruß

    Reiner

    Montag, 27. August 2012 07:46

Antworten

  • Der Punkt ist ein Steuerzeichen für Regex. Daher muss es escaped werden, also "\.".
    Montag, 27. August 2012 07:57
  • Halle Reiner,

    und du kannst dir die Schleife sparen, da die MatchCollection eine Count Eigenschaft hat

    string test = "da. d; ; asd . we. :    eo";
    Regex ex = new Regex("\\.");
    MatchCollection m = ex.Matches(test);
    Console.WriteLine(m.Count); // = 3
    Montag, 27. August 2012 09:48
  • Hallo Reiner,

    oder als LINQ Einzeiler ;-)

       string test = "da. d; ; asd . we. :    eo";
       int count = test.Count(c => c == '.');
    Gruß Elmar
    Montag, 27. August 2012 10:20
    Beantworter
  • Ich will auch noch was erwähnen, ebenfalls ein Einzeiler:
    int count = parsestring.Split('.').Length - 1;


    Koopakiller - http://koopakiller.ko.ohost.de/

    Montag, 27. August 2012 11:59
    Moderator

Alle Antworten