Einfache Suche nach Sonderzeichen
Dieser Artikel basiert auf dem Artikel Reguläre Ausdrücke mit VB.NET - Eine Einführung und dem dort vorgestellten Beispielprojekt was sie Hier herunterladen können.
Nicht alle Zeichen lassen sich über die Tastatur eingeben. Möchten Sie beispielsweise nach doppelten Absätzen suchen, bekommen Sie bei der Eingabe über die Tastatur schon Probleme.
| Escape-Zeichen | Beschreibung |
| \b |
Entspricht in einer [ ]-Zeichenklasse einem Rücktastenzeichen \u0008 (Backspace). Wichtig: Das Escape-Zeichen \b ist ein Sonderfall: In einem Regulären Ausdruck markiert \b eine Wortbegrenzung (zwischen \w and \W-Zeichen), ausgenommen innerhalb einer [ ]-Zeichenklasse, bei der \b das Rücktastenzeichen darstellt. In einem Ersetzungsmuster kennzeichnet \b immer ein Rücktastenzeichen. |
| \t |
Entspricht einem Tabulator \u0009. |
| \r |
Entspricht dem Wagenrücklaufzeichen \u000D (Carriage Return). |
| \v |
Entspricht dem vertikalen Tabstoppzeichen \u000B, das aber in der Windows-Welt in der Regel keine Anwendung findet. |
| \f |
Entspricht einem Seitenwechselzeichen \u000C (Form Feed). |
| \n |
Entspricht einem Zeilenvorschub \u000A (Line Feed). |
| \e |
Entspricht einem Escape-Zeichen \u001B. |
| \040 |
Entspricht einem beliebigen ASCII-Zeichen, das durch eine Oktalzahl (bis zu drei Stellen) repräsentiert wird. Zahlen ohne voranstehende Null sind Rückverweise, wenn sie nur eine Ziffer enthalten oder einer Aufzeichnungsgruppennummer entsprechen. Beispielsweise stellt das Zeichen \040 ein Leerzeichen dar. |
| \x20 |
Entspricht einem ASCII-Zeichen in hexadezimaler Darstellung (genau zwei Stellen). |
| \cC |
Entspricht einem ASCII-Steuerzeichen. Beispiel: \cC ist Control-C. |
| \u0020 |
Entspricht einem Unicode-Zeichen in hexadezimaler Darstellung (genau vier Stellen). |
| \ |
Wird dieses Zeichen von einem Zeichen gefolgt, das nicht als Escape-Zeichen erkannt wird, entspricht es diesem Zeichen. So stellt \. beispielsweise den Punkt oder \\ den Backslash dar. |
Mit Sonderzeichen, die Sie der Tabelle entnehmen, können Sie das Problem recht simpel lösen:
\r\n\r\n
Diese Sonderzeichen weisen die Regular Expressions Engine an, nach dem fortlaufenden Vorkommen von Carriage Return, Line Feed, Carriage Return und LineFeed zu suchen – und diese Folge entspricht zwei aufeinander folgenden Absätzen.
Komplexere Suche mit speziellen Steuerzeichen
Noch flexibler können Sie Ihre Suchvorgänge gestalten, wenn Sie von Steuerzeichen Gebrauch machen, wie sie die folgende Tabelle darstellt:
| Zeichenklasse | Beschreibung |
| . |
Entspricht allen Zeichen mit Ausnahme von \n. Bei Modifikation durch die Singleline-Option entspricht ein Punkt einem beliebigen Zeichen. Weitere Informationen hierzu finden Sie unter Optionen für Reguläre Ausdrücke. |
| [aeiou] |
Entspricht einem beliebigen einzelnen Zeichen, das in dem angegebenen Satz von Zeichen enthalten ist. |
| [^aeiou] |
Entspricht einem beliebigen einzelnen Zeichen, das nicht in dem angegebenen Satz von Zeichen enthalten ist. |
| [0-9a-fA-F] |
Durch die Verwendung eines Bindestrichs (-) können aneinander grenzende Zeichenbereiche angegeben werden. |
| \p{name} |
Entspricht einem beliebigen Zeichen in der durch {name} angegebenen benannten Zeichen-klasse. Unterstützte Namen sind Unicodegruppen und Blockbereiche. Beispielsweise Ll, Nd, Z, IsGreek, IsBoxDrawing. |
| \P{name} |
Entspricht Text, der nicht in Gruppen und Blockbereichen enthalten ist, die in {name} angegeben werden. |
| \w |
Entspricht einem beliebigen Wortzeichen. Entspricht den Unicode-Zeichenkategorien [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. Wenn mit der ECMAScript-Option ECMAScript-konformes Verhalten angegeben wurde, ist \w gleichbedeutend mit [a-zA-Z_0–9]. |
| \W |
Entspricht einem beliebigen Nichtwortzeichen. Entspricht den Unicodekategorien [^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. Wenn mit der ECMAScript-Option ECMAScript-konformes Verhalten angegeben wurde, ist \W gleichbedeutend mit [^a-zA-Z_0–9]. |
| \s |
Entspricht einem beliebigen Leerraumzeichen. Entspricht den Unicode-Zeichenkategorien [\f\n\r\t\v\x85\p{Z}]. Wenn mit der ECMAScript-Option ECMAScript-konformes Verhalten angegeben wurde, ist \s gleichbedeutend mit [ \f\n\r\t\v]. |
| \S |
Entspricht einem beliebigen Nicht-Leerraumzeichen. Entspricht den Unicode-Zeichenkategorien [^\f\n\r\t\v\x85\p{Z}]. Wenn mit der ECMAScript-Option ECMAScript-konformes Verhalten angegeben wurde, ist \S gleichbedeutend mit [^ \f\n\r\t\v]. |
| \d |
Entspricht einer beliebigen Dezimalziffer. Gleichbedeutend mit \p{Nd} für Unicode und [0–9] für Nicht-Unicode mit ECMAScript-Verhalten. |
| \D |
Entspricht einer beliebigen Nichtziffer. Gleichbedeutend mit \P{Nd} für Unicode und [^0–9] für Nicht-Unicode mit ECMAScript-Verhalten. ^ Bestimmt, dass der Vergleich am Anfang der Zeichenfolge oder der Zeile erfolgen muss. $ Bestimmt, dass der Vergleich am Ende der Zeichenfolge, vor einem \n am Ende der Zeichen-folge oder am Ende der Zeile erfolgen muss. |
| \A |
Bestimmt, dass der Vergleich am Anfang der Zeichenfolge erfolgen muss (die Multiline-Option wird ignoriert). |
| \Z |
Bestimmt, dass der Vergleich am Ende der Zeichenfolge oder vor einem \n am Ende der Zeichenfolge erfolgen muss (die Multiline-Option wird ignoriert). |
| \z |
Bestimmt, dass der Vergleich am Ende der Zeichenfolge erfolgen muss (die Multiline-Option wird ignoriert). |
| \G |
Bestimmt, dass der Vergleich an dem Punkt erfolgen muss, an dem der vorherige Vergleich beendet wurde. Beim Verwenden mit Match.NextMatch() wird sichergestellt, dass alle Übereinstimmungen aneinander grenzend sind. |
| \b |
Bestimmt, dass der Vergleich an einer Begrenzung zwischen \w (alphanumerischen) und \W (nicht alpha¬numerischen) Zeichen erfolgen muss. Der Vergleich muss bei Wortbegrenzungen erfolgen, d. h. beim ersten oder letzten Zeichen von Wörtern, die durch beliebige nicht alphanumerische Zeichen voneinander getrennt sind. |
| \B |
Bestimmt, dass der Vergleich nicht bei einer \b-Begrenzung erfolgen darf. |
Angenommen, Sie möchten alle Begriffe finden, die mit der Zeichenfolge »Me.« beginnen und anschließend vier Buchstaben aufweisen, dann wäre, wenn Sie nach der oben stehenden Tabelle logisch vorgingen, die Suchzeichenfolge
Me\.\w\w\w\w
auf den ersten Blick die richtige Vorgehensweise. Aber die Ergebnisliste entspricht wahrscheinlich mit dem Ergebnis, wie es auch in folgender Abbildung zu sehen ist, nicht dem, was Sie im Hinterkopf hatten.

Ihre Vorstellung ist es eher gewesen, dass das Wort nach den vier Buchstaben auch zu Ende ist. Aber auch diese Vorstellung müssen Sie dem Computer mitteilen.
Ergänzen Sie die Suchabfrage um das Steuerzeichen »\s«, und verwenden damit den Suchbe¬griff
Me\.\w\w\w\w\s
entspricht das Ergebnis vermutlich schon eher Ihren Vorstellungen.
ad84b8f5-846f-4f71-85b2-bef222cd2176|1|5.0
Tags: |
Categories: RegEx