共用方式為


逸出字元

更新:2010 年 5 月

反斜線 (\) 是指示下列一項的規則運算式:

  • 其後接的字元是特殊字元,如下一節中的表格所示。 例如,\b 是錨點,會指出相符的規則運算式應該在字緣開始,\t 表示定位點,\x020 則表示空格。

  • 一個字元,否則會被解譯為應該逐字解譯的未逸出語言建構。 例如,大括號 ({) 開始數量詞的定義,但是後接大括號的反斜線 (\{) 則指示規則運算式引擎應該符合大括號。 同樣的,單一反斜線會標記逸出之語言建構的開頭,但兩個反斜線 (\\) 則指示規則運算式引擎應該符合反斜線。

注意事項注意事項

逸出字元可在規則運算式模式中辨認,但無法在取代模式中辨認。

.NET Framework 中的逸出字元

下表列出 .NET Framework 中規則運算式所支援的逸出字元。

字元或序列

描述

除了下列字元以外的所有字元:

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

這些字元在規則運算式中沒有特殊意義,而是符合本身。

\a

符合鈴聲 (警示) 字元 \u0007。

\b

在 [character_group] 字元類別中,比對退格鍵 \u0008。 (請參閱字元類別)。在字元類別以外,\b 是符合字緣的錨點。 (請參閱規則運算式中的錨點)。

\t

符合定位字元,\u0009。

\r

符合歸位字元,\u000D。 請注意,\r 不等於新行字元 \n。

\v

符合垂直定位字元,\u000B。

\f

符合 Form Feed,\u000C。

\n

符合新行字元,\u000A。

\e

符合逸出字元,\u001B。

\nnn

符合 ASCII 字元,其中 nnn 是由表示八進位字碼指標的三位數字組成。 例如,\040 表示空白字元。 不過,如果有只有一個數字 (例如,\2),或對應至擷取群組的編號,則會將這個建構解譯為反向參考。 (請參閱反向參考建構)。

\xnn

符合 ASCII 字元,其中 nn 是二位數的十六進位字碼指標。

\cX

符合 ASCII 控制字元,其中 X 是控制字元的字母。 例如,\cC 是 CTRL-C。

\unnnn

符合 Unicode 字元,其中 nnnn 是四位數的十六進位字碼指標。

注意事項注意事項
.NET Framework 不支援用來指定 Unicode 的 Perl 5 逸出字元。Perl 5 逸出字元的格式是 \x{####…},其中 ####… 是一連串的十六進位數字。請改用 \unnnn。

\

如果無法識別後面所接的字元為逸出字元,則符合該字元。 例如,\* 符合星號 (*),而且與 \x2A 相同。

範例

下列範例會說明規則運算式中逸出字元的用法。 它會剖析字串,其中包含 2009年全世界最大城市的名稱及其人口。 每個城市名稱及其人口,都會以定位字元 (\t) 或垂直列 (| 或 \u007c) 分隔。 個別城市及其人口都以歸位字元和換行字元彼此分隔。

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

規則運算式 \G(.+)[\t|\u007c](.+)\r?\n 的解譯方式如下表所示。

模式

描述

\G

從上一次比對結束的地方開始比對。

(.+)

符合任何字元一次或多次。 這是第一個擷取群組。

[\t\u007c]

符合定位字元 (\t) 或垂直列 (|)。

(.+)

符合任何字元一次或多次。 這是第二個擷取群組。

\r? \n

符合零個或一個後接新行的歸位字元。

請參閱

概念

規則運算式語言項目

變更記錄

日期

記錄

原因

2010 年 5 月

已更正規則運算式模式。

客戶回函。