2012-12-19 11 views
6

Grundsätzlich möchte ich Sätze von bestimmten Zeichen in einer Zeichenfolge zählen. Mit anderen Worten, ich muss alle Buchstaben und Zahlen und nichts anderes zählen. Aber ich kann nicht scheinen, die richtige (Regex) Syntax zu finden. Hier ist, was ich habe ...So zählen Sie bestimmte Zeichen in einer Zeichenfolge

public double AlphaNumericCount(string s) 
{ 
    double count = Regex.Matches(s, "[A-Z].[a-z].[0-9]").Count; 
     return count; 
} 

Ich habe um gesucht, aber kann nicht scheinen, etwas zu finden, die mehr als einen Satz von Zeichen erlaubt. Noch einmal, ich bin mir nicht sicher über die Syntax vielleicht sollte es "[A-Z]/[a-z]/[0-9]" oder so etwas sein. Anywho, gehen Sie einfach auf mich - es ist mein erster Tag mit Regex.

Danke.

Antwort

3

Wenn Sie reguläre Ausdrücke vermeiden möchten, können Sie einfach durch die Zeichen in der Zeichenfolge durchlaufen und überprüfen, ob sie einen Buchstaben oder eine Ziffer sind mit Char.IsLetterOrDigit.

public int AlphaNumericCount(string s) 
{ 
    int count = 0; 

    for(int i = 0; i < s.Length; i++) 
    { 
     if(Char.IsLetterOrDigit(s[i])) 
      count++; 
    } 

    return count; 
} 
+0

Ooh, nett. Danke :) – Sizza

+0

Kein Problem. Regex sieht vielleicht besser aus, aber * kann * langsamer sein, abhängig von der Länge der Zeichenfolge/Anzahl der Anrufe. – keyboardP

5

Regular Expression Cheat Sheet

Expresso Regular Expression tool

[A-Z].[a-z].[0-9] wird jeden Großbuchstaben ([A-Z]) entsprechen, ein beliebiges Zeichen folgt (.), von jedem Kleinbuchstaben gefolgt ([a-z]), ein beliebiges Zeichen folgt (.), gefolgt von einer beliebigen Nummer ([0-9]).

Was Sie bei jedem Buchstaben oder jeder Nummer abgleichen möchten, ist [A-Za-z0-9].

+0

nett, Danke dafür :) – Sizza

4

Wenn die Verwendung von regulären Ausdrücken nicht erforderlich ist, gibt es eine einfache, alternative Lösung:

return s.ToCharArray().Count(c => Char.IsNumber(c) || Char.IsLetter(c)); 
+1

'ToCharArray()' ist hier nicht notwendig. 'string' implementiert bereits' IEnumerable ' –

Verwandte Themen