Verwenden von regulären Ausdrücken in Visual Studio
Visual Studio verwendet reguläre Ausdrücke in .NET Framework zum Suchen und Ersetzen von Text.In Visual Studio 2010 und früheren Versionen verwendete Visual Studio benutzerdefinierte Syntax für reguläre Ausdrücke in den Fenstern "Suchen" und "Ersetzen".In diesem Thema wird erläutert, wie einige der häufiger verwendeten benutzerdefinierten Symbole für reguläre Ausdrücke in .NET-Versionen konvertiert werden.
Tipp |
---|
In Windows-Betriebssystemen enden die meisten Zeilen auf "\r\n" (ein Wagenrücklaufzeichen gefolgt von einer neuen Zeile).Diese Zeichen sind nicht sichtbar, aber im Editor vorhanden und werden an den .NET-Dienst regulärer Ausdrücke übergeben. |
Weitere Informationen finden Sie unter Reguläre Ausdrücke von .NET Framework.
Tipp |
---|
Weitere Informationen zu regulären Ausdrücken, die in den Ersetzungsmustern verwendet werden, finden Sie unter Ersetzungen in regulären Ausdrücken.Um eine nummerierte Erfassungsgruppe zu verwenden, lautet die Syntax zum Festlegen der nummerierten Gruppe $1 und zum Festlegen der betreffenden Gruppe (x):In der folgenden Zeichenfolge findet der gruppierte reguläre Ausdruck (\d)([a-z]) beispielsweise vier Übereinstimmungen: 1a 2b 3c 4d.Die Ersetzungszeichenfolge z$1 konvertiert diese Zeichenfolge in z1 z2 z3 z4> Die entsprechende Syntax in Visual Studio 2010 lautet {:z}([a-z]) für den gruppierten regulären Ausdruck und z\1 für die Ersetzungszeichenfolge. |
Vergleichen regulärer Ausdrücke von .NET Framework
Sie können reguläre Ausdrücke aus der Version, die in früheren Versionen von Visual Studio verwendet wurde, in reguläre Ausdrücke in .NET Framework konvertieren, indem Sie die folgende Tabelle verwenden.
Zweck |
Neu |
Alt |
Neues Beispiel |
---|---|---|---|
Übereinstimmung mit beliebigem Zeichen (mit Ausnahme des Zeilenumbruchs) |
. |
. |
a.o findet "aro" in "around" und "abo" in "about", jedoch nicht "acro" in "across". |
Übereinstimmung mit keinem oder mehreren Vorkommen des vorhergehenden Ausdrucks (wobei die Übereinstimmung möglichst viele Zeichen umfasst). |
* |
* |
a*r findet "r" in "rack", "ar" in "ark" und "aar" in "aardvark" |
Keine oder häufigere Übereinstimmung mit beliebigem Zeichen (Platzhalter *) |
.* |
.* |
c.*e findet "cke" in "racket", "comme" in "comment" und "code" in "code" |
Übereinstimmung mit einem oder mehreren Vorkommen des vorhergehenden Ausdrucks (wobei die Übereinstimmung möglichst viele Zeichen umfasst). |
+ |
+ |
e.+e findet "eede" in "feeder", jedoch nicht "ee". |
Ein- oder mehrmalige Übereinstimmung mit beliebigem Zeichen (Platzhalter ?) |
.+ |
.+ |
"e.+e" findet "eede" in "feeder", jedoch nicht "ee". |
Übereinstimmung mit keinem oder mehreren Vorkommen des vorhergehenden Ausdrucks (wobei die Übereinstimmung möglichst wenig Zeichen umfasst). |
*? |
@ |
e.*?e findet "ee" in "feeder", jedoch nicht "eede". |
Übereinstimmung mit einem oder mehreren Vorkommen des vorhergehenden Ausdrucks (wobei die Übereinstimmung möglichst wenig Zeichen umfasst). |
+? |
# |
e.+?e findet "ente" und "erprise" in "enterprise", jedoch nicht das vollständige Wort "enterprise". |
Verankert die übereinstimmende Zeichenfolge am Anfang einer Zeile oder Zeichenfolge. |
^ |
^ |
^car findet das Wort "car" nur, wenn es am Anfang einer Zeile angezeigt wird. |
Verankert die übereinstimmende Zeichenfolge am Ende einer Zeile |
\r?$ |
$ |
End\r?$ findet "end" nur, wenn es am Ende einer Zeile angezeigt wird. |
Übereinstimmung mit beliebigem Zeichen in einem Satz |
[abc] |
[abc] |
b[abc] findet "ba", "bb" und "bc". |
Übereinstimmung mit beliebigem Zeichen in einem Bereich von Zeichen |
[a-f] |
[x-y] |
be[n-t] findet "bet" in "between", "ben" in "beneath" und "bes" in "beside", jedoch nicht "bel" in "below". |
Erfassung und implizite Nummerierung des in Klammern befindlichen Ausdrucks |
() |
() |
([a-z])X\1 findet "aXa " und "bXb", jedoch nicht "aXb". ". "\1" bezieht sich auf die erste Ausdrucksgruppe "[a-z]". |
Aufheben der Gültigkeit einer Übereinstimmung |
(?!abc) |
~(abc) |
real (?!ity) findet "real" in "realty" und "really," jedoch nicht in "reality". Findet außerdem das zweite "real" (jedoch nicht das erste "real") in "realityreal". |
Übereinstimmung mit beliebigem Zeichen, das sich nicht in einem angegebenen Satz von Zeichen befindet |
[^abc] |
[^abc] |
be[^n-t] findet "bef" in "before", "beh" in "behind" und "bel" in "below", jedoch nicht "beneath". |
Übereinstimmung mit dem Ausdruck vor oder nach dem Symbol. |
| |
| |
(sponge|mud) bath findet "sponge bath" und "mud bath". |
Versehen des Zeichens hinter dem umgekehrten Schrägstrich mit Escapezeichen |
\ |
\ |
\^ findet das Zeichen "^". |
Angeben der Anzahl von Vorkommen des vorherigen Zeichens oder der Gruppe |
{x}, wobei x die Anzahl von Vorkommen ist |
\x, wobei x die Anzahl von Vorkommen ist |
x(ab){2}x findet "xababx" und x(ab){2,3}x findet "xababx" und "xabababx", jedoch nicht "xababababx". |
Übereinstimmung von Text in einer Unicode-Zeichenklasse, wobei "X" der Unicode-Zahl entspricht.Weitere Informationen zu Unicode-Zeichenklassen finden Sie unter |
\p{X} |
:X |
\p{Lu} findet "T" und "D" in "Thomas Doe". |
Übereinstimmung mit einer Wortgrenze |
\b (Außerhalb einer Zeichenklasse gibt "\b" eine Wortgrenze und innerhalb einer Zeichenklasse gibt es eine Rücktaste an.) |
< und > geben den Beginn und das Ende eines Worts an |
\bin findet "in" in "inside", jedoch nicht "pinto". |
Übereinstimmung mit Zeilenumbruch (d. h. ein Wagenrücklaufzeichen gefolgt von einer neuen Zeile). |
\r?\n |
\n |
End\r?\nBegin findet "End" und "Begin" nur, wenn "End" als letzte Zeichenfolge in einer Zeile und "Begin" als erste Zeichenfolge in der nächsten Zeile vorkommt. |
Übereinstimmung mit beliebigem alphanumerischen Zeichen |
\w |
:a |
a\wd findet "add" und "a1d", jedoch nicht "a d". |
Übereinstimmung mit beliebigem Leerzeichen. |
(?([^\r\n])\s) |
:b |
Public\sInterface findet den Begriff "Public Interface". |
Übereinstimmung mit beliebigem numerischen Zeichen |
\d |
:d |
\d findet "3 " in "3456", "2 "in "23" und "1" in "1". |
Übereinstimmung mit einem Unicode-Zeichen |
"\uXXXX", wobei "XXXX"den Unicode-Zeichenwert angibt. |
"\uXXXX", wobei "XXXX"den Unicode-Zeichenwert angibt |
\u0065 findet das Zeichen "e". |
Übereinstimmung mit einem Bezeichner |
\b(_\w+|[\w-[0-9_]]\w*)\b |
:i |
Findet "type1", jedoch nicht &type1" oder "#define". |
Übereinstimmung mit einer Zeichenfolge in Anführungszeichen |
((\".+?\")|('.+?')) |
:q |
Übereinstimmung mit einer beliebigen Zeichenfolge in einfachen oder doppelten Anführungszeichen |
Übereinstimmung mit einer Hexadezimalzahl |
\b0[xX]([0-9a-fA-F])\b |
:h |
Findet "0xc67f", jedoch nicht "0xc67fc67f". |
Übereinstimmung mit ganzen Zahlen und Dezimalzahlen |
\b[0-9]*\.*[0-9]+\b |
:n |
Findet "1.333". |