Normal İfadelerdeki Karakter Çıkışları

Normal ifadedeki ters eğik çizgi (\) aşağıdakilerden birini gösterir:

  • Bunu izleyen karakter, aşağıdaki bölümdeki tabloda gösterildiği gibi özel bir karakterdir. Örneğin, \b normal ifade eşleşmelerinin sözcük sınırında başlaması gerektiğini, \t bir sekmeyi ve \x020 bir boşluğu temsil ettiğini gösteren bir yer işaretidir.

  • Aksi takdirde, manzarasız bir dil yapısı olarak yorumlanacak bir karakter, tam anlamıyla yorumlanmalıdır. Örneğin, küme ayracı ({) bir niceleyicinin tanımını başlatır, ancak bir ters eğik çizgi ve ardından ayraç (\{) normal ifade altyapısının küme ayracı ile eşleşmesi gerektiğini gösterir. Benzer şekilde, tek bir ters eğik çizgi kaçış dili yapısının başlangıcını işaretler, ancak iki ters eğik çizgi (\\), normal ifade altyapısının ters eğik çizgiyle eşleşmesi gerektiğini gösterir.

Not

Karakter kaçışları normal ifade desenlerinde tanınır, ancak değiştirme desenlerinde tanınmaz.

.NET'te Karakter Kaçışları

Aşağıdaki tabloda.NET'te normal ifadeler tarafından desteklenen karakter çıkışları listelenmektedir.

Karakter veya sıra Açıklama
Aşağıdakiler dışındaki tüm karakterler:

. $ ^ { [ ( | ) * + ? \
Karakter veya sıra sütununda listelenenler dışındaki karakterlerin normal ifadelerde özel bir anlamı yoktur; kendileriyle eşleşirler.

Karakter veya sıra sütununa eklenen karakterler özel normal ifade dili öğeleridir. Bunları normal ifadede eşleştirmek için kaçış veya pozitif karakter grubuna dahil edilmeleri gerekir. Örneğin, normal ifade \$\d+ veya [$]\d+ "$1200" ile eşleşir.
\a Bir zil (alarm) karakteriyle eşleşir. \u0007
\b [character_group] karakter sınıfında, bir geri al ile \u0008eşleşir. (Bkz. Karakter Sınıfları.) Karakter sınıfının dışında, \b sözcük sınırıyla eşleşen bir yer işaretidir. (Bkz. Tutturucular.)
\t Bir sekmeyle eşleşir. \u0009
\r Bir satır başı ile \u000Deşleşir. \r Yeni satır karakteriyle \neşdeğer olmadığını unutmayın.
\v Dikey sekmeyle eşleşir. \u000B
\f Form akışıyla eşleşir. \u000C
\n Yeni bir satırla eşleşir. \u000A
\e Bir kaçışla eşleşir. \u001B
\Nnn Nnn'nin sekizli karakter kodunu temsil eden iki veya üç basamaktan oluştuğu bir ASCII karakteriyle eşleşir. Örneğin, \040 bir boşluk karakterini temsil eder. Bu yapı, yalnızca bir basamak (örneğin, \2) varsa veya bir yakalama grubunun sayısına karşılık geliyorsa geri başvuru olarak yorumlanır. (Bkz. Geri Başvuru Yapıları.)
\xNn Nn'nin iki basamaklı onaltılık karakter kodu olduğu bir ASCII karakteriyle eşleşir.
\cX Bir ASCII denetim karakteriyle eşleşir; burada X, denetim karakterinin harfidir. Örneğin, \cC CTRL-C şeklindedir.
\uNnnn Değeri nnnn onaltılık olan utf-16 kod birimiyle eşleşir. Not: Unicode belirtmek için kullanılan Perl 5 karakter kaçışı .NET tarafından desteklenmez. Perl 5 karakter kaçışı, onaltılık basamaklardan oluşan bir dizi olan biçimindedir\x{####…}.#### Bunun yerine nnnn kullanın\u.
\ Ardından kaçış karakteri olarak tanınmayan bir karakter geldiğinde, bu karakterle eşleşir. Örneğin, \* yıldız (*) ile eşleşir ve ile \x2Aaynıdır.

Bir Örnek

Aşağıdaki örnekte normal ifadede karakter kaçışlarının kullanımı gösterilmektedir. 2009'da dünyanın en büyük şehirlerinin ve nüfuslarının adlarını içeren bir dizeyi ayrıştırıyor. Her şehir adı, popülasyonundan bir sekme (\t) veya dikey çubuk (| veya \u007c) ile ayrılır. Tek tek şehirler ve nüfusları, bir satır başı ve hat beslemesi ile birbirinden ayrılır.

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" +
                            "Delhi, India\t12,259,230\n" +
                            "Istanbul, Türkiye|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 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
//       Delhi, India         12,259,230
//       Istanbul, Türkiye     11,372,613
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 + _
                              "Delhi, India" + vbTab + "12,259,230" + vbCrLf + _
                              "Istanbul, Türkiye|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
'       Delhi, India         12,259,230
'       Istanbul, Türkiye     11,372,613

Normal ifade \G(.+)[\t\u007c](.+)\r?\n aşağıdaki tabloda gösterildiği gibi yorumlanır.

Desen Açıklama
\G Son eşleşmenin sona erdiği eşleşmeye başlayın.
(.+) Herhangi bir karakteri bir veya daha fazla kez eşleştirin. Bu ilk yakalama grubudur.
[\t\u007c] Bir sekmeyi (\t) veya dikey çubuğu (|) eşleştirin.
(.+) Herhangi bir karakteri bir veya daha fazla kez eşleştirin. Bu ikinci yakalama grubudur.
\r?\n Satır başı ve ardından yeni bir çizginin sıfır veya bir oluşumunu eşleştirin.

Ayrıca bkz.