Freigeben über


Escapezeichen

Der umgekehrte Schrägstrich (\) in einem regulären Ausdruck gibt eins der Folgenden an:

  • Das Zeichen, das darauf folgt, ist ein Sonderzeichen, wie in der Tabelle im folgenden Abschnitt gezeigt. \b ist z. B. ein Anker, der angibt, dass die Übereinstimmung eines regulären Ausdrucks mit einer Wortgrenze beginnen sollte, \t stellt einen Tabulator dar, und \x020 stellt ein Leerzeichen dar.

  • Ein Zeichen, das andernfalls als Sprachkonstrukt ohne Escapezeichen interpretiert werden würde, sollte wörtlich interpretiert werden. Eine geschweifte Klammer ({) beginnt z. B. die Definition eines Quantifizierers, aber ein von einer geschweiften Klammer (\{) gefolgter umgekehrter Schrägstrich gibt an, dass das Modul für reguläre Ausdrücke eine Entsprechung für die geschweifte Klammer finden sollte. Auf ähnliche Weise markiert ein einzelner umgekehrter Schrägstrich den Anfang eines Sprachkonstrukts mit Escapezeichen, aber zwei umgekehrte Schrägstriche (\\) geben an, dass das Modul für reguläre Ausdrücke eine Entsprechung für den umgekehrten Schrägstrich finden soll.

HinweisHinweis

Die in der folgenden Tabelle aufgelisteten Escapezeichen werden in Mustern von regulären Ausdrücken, jedoch nicht in Ersetzungsmustern erkannt.

Escapezeichen in .NET Framework

In der folgenden Tabelle sind die Escapezeichen aufgeführt, die von regulären .NET Framework-Ausdrücken unterstützt werden.

Zeichen oder Sequenz

Beschreibungen

Alle Zeichen außer Folgenden:

. $ ^ { [ ( | ) * + ? \

Diese Zeichen haben keine besonderen Bedeutungen in regulären Ausdrücken; sie finden eine Entsprechung für sich selbst.

\a

Entspricht dem Klingelzeichen (Warnsignal) \u0007.

\b

Entspricht in einer [Zeichengruppe]-Zeichenklasse einem Rückschritt (\u0008). (Weitere Informationen finden Sie unter Zeichenklassen.) Außerhalb einer Zeichenklasse ist \b ein Anker, der einer Wortgrenze entspricht. (Weitere Informationen finden Sie unter Anker in regulären Ausdrücken.)

\t

Entspricht dem Tabstoppzeichen \u0009.

\r

Entspricht dem Wagenrücklaufzeichen \u000D. \r ist nicht mit dem Zeilenumbruchzeichen ( \n) identisch.

\v

Entspricht dem vertikalen Tabstoppzeichen \u000B.

\f

Entspricht dem Seitenvorschubzeichen \u000C.

\n

Entspricht der neuen Zeile \u000A.

\e

Entspricht dem Escapezeichen \u001B.

\nnn

Findet eine Entsprechung für ein ASCII-Zeichen, wobei nnn aus bis zu drei Ziffern besteht, die den oktalen Zeichencode darstellen. Beispielsweise stellt \040 ein Leerzeichen dar. Dieses Konstrukt wird jedoch als Rückverweis interpretiert, wenn es nur eine Ziffer (z. B. \2) hat oder wenn es der Nummer einer Erfassungsgruppe entspricht. (Weitere Informationen finden Sie unter Rückverweiskonstrukte.)

\xnn

Findet eine Entsprechung für ein ASCII-Zeichen, wobei nn ein zweistelliger Hexadezimalzeichencode ist.

\cX

Entspricht einem ASCII-Steuerzeichen, wobei X der Buchstabe des Steuerzeichens ist. Beispielsweise ist \cC STRG+C.

\unnnn

Entspricht einem Unicode-Zeichen, wobei nnnn, wobei nnnn als vier hexadezimale Ziffern dargestellter Codepunkt ist.

HinweisHinweis
Die Perl 5-Escape-Zeichen, die angeben, dass Unicode von .NET Framework nicht unterstützt wird.Das Perl 5-Escape-Zeichen hat das Format \x{####…}, wobei ####… einer Reihe von Hexadezimalziffern entspricht.Verwenden Sie stattdessen \unnnn.

\

Wird dieses Zeichen von einem Zeichen gefolgt, das nicht als Escapezeichen erkannt wird, entspricht es diesem Zeichen. \* entspricht beispielsweise einem Sternchen (*) und ist gleich \x2A.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung von Escapezeichen in einem regulären Ausdruck. Es analysiert eine Zeichenfolge, die die Namen der größten Orten der Welt und ihre Bevölkerungen in 2009 enthält. Jeder Ortsname wird durch ein Tabstoppzeichen (\t) oder einen senkrechten Strich (| oder \u007c) von seiner Einwohnerzahl getrennt. Einzelne Orte und ihre Einwohnerzahlen werden durch einen Wagenrücklauf und einen Zeilenvorschub von einander getrennt.

Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim delimited As String = "\G(.+)[\t\u007c](.+)\r?\n"
      Dim input As String = "Mumbai, India|13,922,125" + vbCrLf + _
                            "Shanghai, China" + vbTab + "13,831,900" + vbCrLf + _
                            "Karachi, Pakistan|12,991,000" + vbCrLf + _
                            "Dehli, India" + vbTab + "12,259,230" + vbCrLf + _
                            "Istanbul, Turkey|11,372,613" + vbCrLf
      Console.WriteLine("Population of the World's Largest Cities, 2009")
      Console.WriteLine()
      Console.WriteLine("{0,-20} {1,10}", "City", "Population")
      Console.WriteLine()
      For Each match As Match In Regex.Matches(input, delimited)
         Console.WriteLine("{0,-20} {1,10}", match.Groups(1).Value, _
                                            match.Groups(2).Value)
      Next                         
   End Sub
End Module
' The example displays the following output:
'       Population of the World's Largest Cities, 2009
'       
'       City                 Population
'       
'       Mumbai, India        13,922,125
'       Shanghai, China      13,831,900
'       Karachi, Pakistan    12,991,000
'       Dehli, India         12,259,230
'       Istanbul, Turkey     11,372,613
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string delimited = @"\G(.+)[\t\u007c](.+)\r?\n";
      string input = "Mumbai, India|13,922,125\t\n" + 
                            "Shanghai, China\t13,831,900\n" + 
                            "Karachi, Pakistan|12,991,000\n" + 
                            "Dehli, India\t12,259,230\n" + 
                            "Istanbul, Turkey|11,372,613\n";
      Console.WriteLine("Population of the World's Largest Cities, 2009");
      Console.WriteLine();
      Console.WriteLine("{0,-20} {1,10}", "City", "Population");
      Console.WriteLine();
      foreach (Match match in Regex.Matches(input, delimited))
         Console.WriteLine("{0,-20} {1,10}", match.Groups[1].Value, 
                                            match.Groups[2].Value);
   }
}
// The example displyas the following output:
//       Population of the World's Largest Cities, 2009
//       
//       City                 Population
//       
//       Mumbai, India        13,922,125
//       Shanghai, China      13,831,900
//       Karachi, Pakistan    12,991,000
//       Dehli, India         12,259,230
//       Istanbul, Turkey     11,372,613

Der reguläre Ausdruck \G(.+)[\t|\u007c](.+)\r?\n wird entsprechend der Darstellung in der folgenden Tabelle interpretiert.

Muster

Beschreibungen

\G

Beginnen Sie den Abgleich an der Stelle, wo der letzte Abgleich geendet hat.

(.+)

Entspricht einem oder mehreren beliebigen Zeichen. Dies ist die erste Erfassungsgruppe.

[\t\u007c]

Entsprechung für einen Tabulator (\t) oder einen senkrechten Strich (|).

(.+)

Entspricht einem oder mehreren beliebigen Zeichen. Dies ist die zweite Erfassungsgruppe.

\r? \n

Entspricht 0 (null) oder einem Vorkommen des Wagenrücklaufs, gefolgt von einer neuen Zeile.

Siehe auch

Konzepte

Sprachelemente für reguläre Ausdrücke

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Mai 2010

Das reguläre Ausdrucksmuster wurde korrigiert.

Kundenfeedback.