Match und split-string mit regex

Möchte ich die Validierung einer Eingabe-Zeichenkette anhand eines regulären Ausdrucks und dann gespalten.

Den input-string kann eine beliebige Kombination der Buchstaben A und dem Buchstaben A, gefolgt von einem Ausrufezeichen. Zum Beispiel diese gültig sind Eingabe-strings: A, A!, AA, AA!, Ein!A, A!Ein!, AAA, AAA!, AA!A, A!AA, ... Alle anderen Zeichen sollen bedeuten eine ungültige match.

Mein code würde wahrscheinlich so Aussehen:

public string[] SplitString(string s)
{
    Regex regex = new Regex(@"...");
    if (!regex.IsMatch(s))
    {
        throw new ArgumentException("Wrong input string!");
    }

    return regex.Split(s);
}

Wie sollte mein regex Aussehen?

Bearbeiten, - einige Beispiele:

  • input-string "AAA", sollte die Funktion liefert ein array von 3 strings ("A", "A", "A")
  • input-string "Ein!AAA!", sollte die Funktion liefert ein array aus 4 strings ("A!", "A", "A", "A!")
  • input-string "AA!b", sollte die Funktion löst eine ArgumentException
  • Sind Sie sicher, dass dies kein Hausaufgaben?
  • und angenommen, es ist immer noch eine berechtigte Frage. Trotzdem, solche "meta" - tags sind entmutigt.
  • Warum würden Sie verwenden, regex für das, klingt wie overkill
  • ja, ich bin sicher. @H. B. - dies ist ein Vereinfachtes Beispiel, es könnte mehr verschiedene Buchstaben, aber jeder von Ihnen sein sollte, entweder allein oder mit Ausrufezeichen am Ende.
InformationsquelleAutor sventevit | 2011-04-16
Schreibe einen Kommentar