溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中模式字符串怎么用

發(fā)布時間:2021-12-01 09:49:55 來源:億速云 閱讀:174 作者:小新 欄目:編程語言

這篇文章主要介紹了C#中模式字符串怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

利用正則表達(dá)式實現(xiàn)字符串搜索,在C#中使用.NET一般表達(dá)式引擎

下面將通過一個樣例的開發(fā),執(zhí)行并顯示一些搜索的結(jié)果,說明一般表達(dá)式的一些特性,以及如何在C#中使用.NET一般表達(dá)式引擎。說明使用字符串時應(yīng)在前面加上符號@

String Text=@"I can not find my position in Beijing";

把這個文本稱為輸入字符串,為了說明一般表達(dá)式.NET類,本文先進(jìn)行一次純文本的搜索,這次搜索不帶任何轉(zhuǎn)義序列或一般表達(dá)式命令。假定要查找所有字符串ion,把這個搜索字符串稱為模式。使用一般表達(dá)式和上面聲明的變量Text,編寫出下面的代碼:

String Pattern = "ion";  MatchCollection Matches = Regex.Matches(Text,Pattern,RegexOptions);  foreach(Match NextMatch in Matches)  { Console.WriteLine(NextMatch.Index); }

在這段代碼中,使用了System.Text.RegularExpressions名稱空間中Regex類的靜態(tài)方法Match()。這個方法的參數(shù)是一些輸入文本、一個模式和RegexOptions每句中的一組可選標(biāo)志。Matches()返回MatchCollection,每個匹配都用一個 Match對象來表示。在上面的代碼中,只是在集合中迭代,使用Match類的Index屬性,返回輸入文本中匹配所在的索引。運行這段代碼,將得到1個匹配項。

一般集合的功能主要取決于C#模式字符串。原因是C#模式字符串不僅僅包含純文本。如前所述。還包含元字符和轉(zhuǎn)義序列,元字符是給出命令的特殊字符,而轉(zhuǎn)義序列的工作方式與C#的轉(zhuǎn)義序列相同,它們都是以反斜杠\開頭的字符,具有特殊的含義。例如,假定要查找以n開頭的字,就可以使用轉(zhuǎn)義序列\(zhòng)b,它表示一個字的邊界(字的邊界是以某個字母數(shù)字標(biāo)的字符開頭,或者后面是一個空白字符或標(biāo)點符號),下面編寫如下代碼:

String Pattern = @"\bn";  MatchCollection Matches = Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|  RegexOptions.ExplicitCapture);

要在運行時把\b傳遞給.NET一般表達(dá)式引擎,反斜杠\不應(yīng)被C#編譯器解釋為轉(zhuǎn)義序列。如果要查找以序列ion結(jié)尾的字,可以使用下面的代碼:

String Pattern = @"ion\b";

如果要查找以字母n開頭,以序列ion結(jié)尾的所有字,需要一個以\bn開頭,以ion\b結(jié)尾的模式,中間內(nèi)容怎么辦?需要告訴計算機(jī)n和ion中間的內(nèi)容可以是任意長度的字符,只要字符不是空白即可,正確的模式如下所示:

String Pattern = @"\bn\S*ion\b";

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C#中模式字符串怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI