Wir haben Zeichenklassen in .NET bereits als RegexElemente kennen gelernt. Dort wurde allerdings nur das Konzept vor gestellt, hier beschäftigen wir uns nun mit den 'blutigen Details'. Kontinuierliche FolgenUm die explizite Angabe von allen erlaubten Zeichen in einer Zeichenklasse zu vermeiden können wir kontinuierliche Folgen spezifizieren. Statt [abcdef] können wir [a-f] schreiben. Dabei sind allerdings einige Dinge zu beachten:
KürzelEinige häufige Kürzel für bestimmte Zeichenklassen wie 'nur Ziffern' haben wir bereits kennengelernt. Bisher haben wir uns aber nur mit ASCII beschäftigt. Wie sieht es nun mit 'moderneren' Zeichensätzen (unicode) aus? Jenseits von 7-Bit ASCII gibt es ja ein ganzes Universum an Zeichen die wir bisher nicht berücksichtigt haben. Einzelne Zeichen lassen sich ja leicht über ihren numerischen Code ansprechen wie wir wissen. Schön wäre es jetzt wenn man analog zu den bisher betrachteten Kürzeln für 'Leerzeichen', 'Ziffern', 'Alphanumerische Zeichen' usw. auch für solche Zeichen jenseits von ASCII Kürzel hätte... .NET bietet netterweise derartige Kürzel an: \p{Name_der_Zeichenklasse} und \P{Name_der_Zeichenklasse} als die Verneinung dazu. Name_der_Zeichenklasse entspricht dabei einer Unicode-Kategorie (Name_der_Zeichenklasse, offizieller Unicodename, Erklärung): Buchstaben: Ll ... Letter, lowercase - Kleinbuchstabe Lm ... Letter, modifier - verändert das vorhergehende Zeichen Lo ... Letter, other - Buchstabe der weder Gross- noch Klein- noch Titelbuchstabe noch Modifikator ist (Verwirrt?) Lt ... Letter, titlecase - Titelbuchstaben (Initiale) Lu ... Letter, uppercase - Grossbuchstaben Ziffern: Nd ... Number, decimal digit - Dezimalziffer Nl ... Number, letter - Ziffer die durch Buchstaben dargestellt ist. Z.B. Römische Ziffern No ... Number, other - Zahl die keine Ziffer ist. Z.B. das '1/2'-zeichen Satzzeichen: Pe ... Punctuation, close - Abschliessendes Satzzeichen bei gepaarten Zeichen (Klammern usw.) Pc ... Punctuation, connector - Satzzeichen das zwei Zeichen verbindet Pd ... Punctuation, dash - Bindestrich, Trennstrich Pf ... Punctuation, final quote - abschliessendes Anführungszeichen Pi ... Punctuation, initial quote - Anfängliches Anführungszeichen Ps ... Punctuation, open - Anfängliches gepaartes Zeichen (Klammern usw.) Po ... Punctuation, other - Satzzeichen das in keine der anderen Satzzeichenklassen fällt Symbole: Sc ... Symbol, currency - Währungszeichen Sm ... Symbol, math - Mathematische Zeichen Sk ... Symbol, modifier - Beeinflusst die umgebenden Zeichen. Z.B. Bruchstrich Sonstiges: Cc ... Other, control - Steuerzeichen Cf ... Other, format - nichtdruckendes Zeichen das die Formatierung beeinflusst Cn ... Other, not assigned - fällt in keine der Unicode-kategorien Co ... Other, private use - zu privater Verwendung Cs ... Other, surrogate - Surrogatzeichen Me ... Mark, enclosing - eine Umschliessung mehrerer Zeichen die selbst keines ist. Typisch Unicode. Mn ... Mark, nonspacing - nicht weiterrückendes Zeichen, das ein anderes Zeichen modifiziert Ms ... Mark, spacing combining - beeinflusst die Weite eines Zeichens Zl ... Separator, line - Zeilentrenner Zp ... Separator, paragraph - Absatztrenner Zs ... Separator, space - Zeichentrenner, aber kein Steuerzeichen Zur Verwendung dieser Zeichenklassen ist System.Globalization notwendig. Erklärungen zu dem Unicode-fachchinesisch finden sich auf der entsprechenden Website http://www.unicode.org |
|