總結C#Regex類的學習及運用

來源:互聯網
上載者:User

 

 

首先說幾個重要的Regex類:

 

Regex

   Regex 類表示不可變(唯讀)的Regex。它還包含各種靜態方法,允許在不顯式建立其他類的執行個體的情況下使用其他Regex類。

下面的程式碼範例建立了 Regex 類的執行個體並在初始化對象時定義一個簡單的Regex。請注意,使用了附加的反斜線作為逸出字元,它將 \. 匹配字元類中的反斜線指定為原義字元。

  

    樣本1:Regex r=new Regex("^.+\w@.+\w\.\w+$");   //^.+\w@.+\w\.\w+$ 匹配E_Mail地址

  Regex 類的常用方法:

  Regex.Match
在指定的輸入字串中搜尋 Regex 建構函式中指定的Regex的第一個匹配項。

  Regex.Matches
在指定的輸入字串中搜尋指定的Regex的所有匹配項。

Match

  Match
類表示單個Regex匹配操作的結果。

   Match 類的執行個體由 Regex.Match 方法返回,並表示字串中的第一個模式比對項。 後續匹配項由 Match.NextMatch
方法返回的 Match 對象表示。 此外,由零個、一個或多個 Match 對象組成的 MatchCollection 對象由 Regex.Matches
方法返回。

  

MatchCollection

  MatchCollection
類表示成功的非重疊匹配項的序列。該集合為不可變(唯讀)的,並且沒有公用建構函式。MatchCollection 的執行個體是由
Regex.Matches 方法返回的。

  如果 Regex.Matches 方法無法與輸入字串中的Regex模式比對,它將返回一個空的 MatchCollection 對象。 然後,可以使用
C# 中的 foreach 構造或 Visual Basic 中的 For Each 構造來逐一查看集合。

 

 以下代碼從指定文本中提取指定內容(提取百家姓練習題):

     

 1  string files = File.ReadAllText(@"F:\bjx.txt", Encoding.Default); 2  3             4  5             string reg = @"〔\w{1}〕"; 6            MatchCollection mat = Regex.Matches(files, reg);//通過Regex提取 7  8   9 10            List<string> aa = new List<string>();   //泛型運用11           12              //foreach 遍曆13            foreach (Match m in mat)   //Match類表示單個Regex匹配操作的結果14            {15 16                                17                aa.Add(m.Value);   //把尋找的結果儲存到泛型變數中18            }19 20       21             for (int i = 0; i < aa.Count; i++)22             {23                 Console.WriteLine(aa[i]); //輸出到螢幕24             }25            26            Console.ReadKey();

補充一點知識,只匹配漢字:

[\u2E80-\u9FFF]+
匹配所有東亞區的語言
 [\u4E00-\u9FFF]+
匹配簡體和繁體
 [\u4E00-\u9FA5]+
匹配簡體

例:[\u2E80-\u9FFF|,] 包含標點“,”的漢欄位。

已測試。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.