共用方式為


回溯

更新:2007 年 11 月

當規則運算式有選擇性或替代比對模式時,規則運算式比對引擎 (在其輸入字串評估的某個點) 可能分支出一個或多個方向以達成所有可能比對。如果比對在引擎搜尋的第一個方向上不成功,它必須備份輸入字串中發生分支的位置,並嘗試替代的比對。

例如,考慮使用針對比對兩種灰色拼法而設計的規則運算式:gray 和 grey。使用替代字元 | 來建立規則運算式 gr(a|e)y,以比對任一種拼寫。套用至輸入字串 greengraygrowngrey 時,假設引擎會首先嘗試比對 gray。它比對輸入字串的頭兩個字元 gr,接著在 green 的 e 上失敗。它反向追蹤至 r (替代字元之前的最後成功比對),並試圖比對 grey。又在第二個 e 上失敗,引擎會繼續搜尋,最後將比對到兩個嵌入字組 gray 和 grey。

下列程式碼範例示範如何建立這個規則運算式,並將它套用至輸入字串。

Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      ' Define strings: "gray" and "grey".
      Dim r As New Regex("gr(a|e)y") 
      Dim m As MatchCollection = r.Matches("greengraygrowngrey")
      Console.WriteLine("Number of groups found: {0}", m.Count)
   End Sub
End Module
' The example displays the following output:
'      Number of groups found: 2
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
       // Define strings: "gray" and "grey".
       Regex r = new Regex("gr(a|e)y"); 
       MatchCollection m = r.Matches("greengraygrowngrey");
       Console.WriteLine("Number of groups found: {0}", m.Count); 
    }
}
// The example displays the following output:
//      Number of groups found: 2

請參閱

其他資源

.NET Framework 規則運算式