【正文】
該集合為只讀的,并且沒(méi)有公共構(gòu)造函數(shù)。 i++) //在輸入字符串中找到所有匹配 { results[i] = mc[i].Value。 for (int i = 0。 Regex r = new Regex(abc)。 String[] results = new String[20]。下面代碼示例演示了如何將集合復(fù)制到一個(gè)字符串?dāng)?shù)組(保留每一匹配)和一個(gè)整數(shù)數(shù)組(指示每一匹配的位置)中。MatchCollection 的實(shí)例是由 屬性返回的。 // 在字符串中匹配 if () { (Found match at position + )。 Regex r = new Regex(abc)。 // 定義表達(dá)式 Match 類(lèi)表示正則表達(dá)式匹配操作的結(jié)果 以下示例使用 Regex 類(lèi)的 Match 方法返回 Match 類(lèi)型的對(duì)象,以便找到輸入字符串中第一個(gè)匹配。 Regex r。以下代碼示例創(chuàng)建了 Regex 類(lèi)的實(shí)例并在初始化對(duì)象時(shí)定義一個(gè)簡(jiǎn)單的正則表達(dá)式。.NET 框架的正則表達(dá)式類(lèi) 下面通過(guò)介紹 .NET 框架的正則表達(dá)式類(lèi)。如果要搜索所有以th結(jié)尾的字,就可以編寫(xiě)th\b(序列th字邊界)。 一般表達(dá)式語(yǔ)言是一種可以編寫(xiě)搜索表達(dá)式的語(yǔ)言。當(dāng)前,所有的文本編輯器都有一些搜索功能,通常可以打開(kāi)一個(gè)對(duì)話框,在其中的一個(gè)文本框中鍵入要定位的字符串,如果還要同時(shí)進(jìn)行替換操作,可以鍵入一個(gè)替換字符串,比如在Windows操作系統(tǒng)中的記事本、Office系列中的文檔編輯器都有這種功能。 字符串搜索 正則表達(dá)式語(yǔ)言由兩種基本字符類(lèi)型組成:原義(正常)文本字符和元字符。對(duì)于處理字符串(例如 HTML處理、日志文件分析和 HTTP 標(biāo)頭分析)的許多應(yīng)用程序而言,正則表達(dá)式是不可缺少的工具。關(guān)鍵字:正則表達(dá)式、元字符、字符串、匹配 正則表達(dá)式簡(jiǎn)介 正則表達(dá)式提供了功能強(qiáng)大、靈活而又高效的方法來(lái)處理文本。正則表達(dá)式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式;提取、編輯、替換或刪除文本子字符串;或?qū)⑻崛〉淖址砑拥郊弦陨蓤?bào)告。 .NET 框架正則表達(dá)式并入了其他正則表達(dá)式實(shí)現(xiàn)的最常見(jiàn)功能,被設(shè)計(jì)為與 Perl 5 正則表達(dá)式兼容,.NET 框架正則表達(dá)式還包括一些在其他實(shí)現(xiàn)中尚未提供的功能,.NET 框架正則表達(dá)式類(lèi)是基類(lèi)庫(kù)的一部分,并且可以和面向公共語(yǔ)言運(yùn)行庫(kù)的任何語(yǔ)言或工具一起使用。正是元字符組為正則表達(dá)式提供了處理能力。這種搜索最簡(jiǎn)單的方式,這類(lèi)問(wèn)題很容易用String類(lèi)的 ()方法來(lái)解決,但如果需要在文檔中識(shí)別某個(gè)重復(fù)的,該怎么辦?編寫(xiě)一個(gè)例程,從一個(gè)String類(lèi)中選擇重復(fù)的字是比較復(fù)雜的,此時(shí)使用語(yǔ)言就很適合。在該語(yǔ)言中,可以把文檔中要搜索的文本、轉(zhuǎn)義序列和特定含義的其他字符組合在一起,例如序列\(zhòng)b表示一個(gè)字的開(kāi)頭和結(jié)尾(子的邊界),如果要表示正在查找的以字符th開(kāi)頭的字,就可以編寫(xiě)一般表達(dá)式\bth(即序列字符界是th)。但是,一般表達(dá)式要比這復(fù)雜得多,例如,可以在搜索操作中找到存儲(chǔ)部分文本的工具性程序(facility)。 Regex 類(lèi)表示只讀正則表達(dá)式 Regex 類(lèi)包含各種靜態(tài)方法,允許在不顯式實(shí)例化其他類(lèi)的對(duì)象的情況下使用其他正則表達(dá)式類(lèi)。請(qǐng)注意,使用了附加的反斜杠作為轉(zhuǎn)義字符,它將 \s 匹配字符類(lèi)中的反斜杠指定為原義字符。 // 聲明一個(gè) Regex類(lèi)的變量 r = new Regex(\\s2000)。此示例使用 Match 類(lèi)的 屬性來(lái)指示是否已找到匹配。 // 定義一個(gè)Regex對(duì)象實(shí)例 Match m = (123abc456)。 //輸入匹配字符的位置 } MatchCollection 類(lèi)表示非重疊匹配的序列 該集合為只讀的,并且沒(méi)有公共構(gòu)造函數(shù)。使用 Regex 類(lèi)的 Matches 方法,通過(guò)在輸入字符串中找到的所有匹配填充 MatchCollection。 MatchCollection mc。 int[] matchposition = new int[20]。 //定義一個(gè)Regex對(duì)象實(shí)例 mc = (123abc4abcd)。 i 。 //將匹配的字符串添在字符串?dāng)?shù)組中 matchposition[i] = mc[i].Index。GroupCollection 的實(shí)例在 屬性返回的集合中返回。 using System。 public class RegexTest { public static void RunTest() { Regex r = new Regex((a(b))c)。 (Number of groups found = + )。 } } 該示例產(chǎn)生下面的輸出: