正則表達式類

Regex 類表示只讀正則表達式

  Regex 類包含各類靜態方法,容許在不顯式實例化其餘類的對象的狀況下使用其餘正則表達式類。如下代碼示例建立了 Regex 類的實例並在初始化對象時定義一個簡單的正則表達式。請注意,使用了附加的反斜槓做爲轉義字符,它將 \s 匹配字符類中的反斜槓指定爲原義字符。正則表達式

Regex r; // 聲明一個 Regex類的變量
r = new Regex("\\s2000"); // 定義表達式

Match 類表示正則表達式匹配操做的結果

  如下示例使用 Regex 類的 Match 方法返回 Match 類型的對象,以便找到輸入字符串中第一個匹配。此示例使用 Match 類的 Match.Success 屬性來指示是否已找到匹配。數組

Regex r = new Regex("abc"); // 定義一個Regex對象實例
Match m = r.Match("123abc456"); // 在字符串中匹配
if (m.Success) 
{
 Console.WriteLine("Found match at position " + m.Index); //輸入匹配字符的位置
}

MatchCollection 類表示非重疊匹配的序列

  該集合爲只讀的,而且沒有公共構造函數。MatchCollection 的實例是由 Regex.Matches 屬性返回的。使用 Regex 類的 Matches 方法,經過在輸入字符串中找到的全部匹配填充 MatchCollection。下面代碼示例演示瞭如何將集合複製到一個字符串數組(保留每一匹配)和一個整數數組(指示每一匹配的位置)中。函數

MatchCollection mc;
String[] results = new String[20];
int[] matchposition = new int[20];
Regex r = new Regex("abc"); //定義一個Regex對象實例
mc = r.Matches("123abc4abcd"); 
for (int i = 0; i < mc.Count; i++) //在輸入字符串中找到全部匹配
{
 results[i] = mc[i].Value; //將匹配的字符串添在字符串數組中
 matchposition[i] = mc[i].Index; //記錄匹配字符的位置
}

GroupCollection 類表示捕獲的組的集合

  該集合爲只讀的,而且沒有公共構造函數。GroupCollection 的實例在 Match.Groups 屬性返回的集合中返回。下面的控制檯應用程序查找並輸出由正則表達式捕獲的組的數目。spa

using System;
using System.Text.RegularExpressions;
public class RegexTest 
{
 public static void RunTest() 
 {
  Regex r = new Regex("(a(b))c"); //定義組
  Match m = r.Match("abdabc");
  Console.WriteLine("Number of groups found = " + m.Groups.Count);
 }
 public static void Main() 
 {
  RunTest();
 }
}

該示例產生下面的輸出:Number of groups found = 3code

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息