您好,登錄后才能下訂單哦!
這篇文章主要講解了“C#正則表達式怎么理解”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#正則表達式怎么理解”吧!
到目前為止,許多的編程語言和工具都包含對正則表達式的支持,當然.NET也不例外,.NET基礎類庫中包含有一個名稱空間和一系列可以充分發揮規則表達式威力的類。
正則表達式的知識可能是不少編程人員最煩惱的事兒了。如果你還沒有規則表達式方面的知識的話,建議從正則表達式的基礎知識入手。前參見 正則表達式語法。
下面就來研究C#正則表達式,C#正則表達式包含在.NET基礎雷庫的一個名稱空間下,這個名稱空間就是System.Text.RegularExpressions。該名稱空間包括8個類,1個枚舉,1個委托。他們分別是:
◆Capture: 包含一次匹配的結果;
◆CaptureCollection: Capture的序列;
◆Group: 一次組記錄的結果,由Capture繼承而來;
◆GroupCollection:表示捕獲組的集合
◆Match: 一次表達式的匹配結果,由Group繼承而來;
◆MatchCollection: Match的一個序列;
◆MatchEvaluator: 執行替換操作時使用的委托;
◆Regex:編譯后的表達式的實例。
◆RegexCompilationInfo:提供編譯器用于將正則表達式編譯為獨立程序集的信息
◆RegexOptions 提供用于設置正則表達式的枚舉值
Regex類中還包含一些靜態的方法:
◆Escape: 對字符串中的regex中的轉義符進行轉義;
◆IsMatch: 如果表達式在字符串中匹配,該方法返回一個布爾值;
◆Match: 返回Match的實例;
◆Matches: 返回一系列的Match的方法;
◆Replace: 用替換字符串替換匹配的表達式;
◆Split: 返回一系列由表達式決定的字符串;
◆Unescape:不對字符串中的轉義字符轉義。
下面介紹他們的用途:
先看一個簡單的匹配例子,我們首先從使用Regex、Match類的簡單表達式開始學習。 Match m = Regex.Match("abracadabra", "(a|b|r)+"); 我們現在有了一個可以用于測試的Match類的實例,例如:if (m.Success){},如果想使用匹配的字符串,可以把它轉換成一個字符串:MesaageBox.Show("Match="+m.ToString()); 這個例子可以得到如下的輸出: Match=abra。這就是匹配的字符串了。
Regex 類表示只讀正則表達式類。它還包含各種靜態方法(在下面的實例中將逐一介紹),允許在不顯式創建其他類的實例的情況下使用其他正則表達式類。
以下代碼示例創建了 Regex 類的實例并在初始化對象時定義一個簡單的正則表達式。聲明一個Regex對象變量:Regex objAlphaPatt;,接著創建Regex對象的一個實例,并定義其規則:objAlphaPatt=new Regex("[^a-zA-Z]");
IsMatch方法指示 Regex 構造函數中指定的正則表達式在輸入字符串中是否找到匹配項。這是我們使用C#正則表達式時最常用的方法之一。下面的例子說明了IsMatch方法的使用:
if( !objAlphaPatt.IsMatch("testisMatchMethod")) lblMsg.Text = "匹配成功"; else lblMsg.Text = "匹配不成功"; 這段代碼執行的結果是“匹配成功” if( ! objAlphaPatt.IsMatch("testisMatchMethod7654298")) lblMsg.Text = "匹配成功"; else lblMsg.Text = "匹配不成功";
Split方法是把由正則表達式匹配項定義的位置將輸入字符串拆分為一個子字符串數組。例如:
Regex r = new Regex("-"); // Split on hyphens. string[] s = r.Split("first-second-third"); for(int i=0;i<s.Length;i++) { Response.Write(s[i]+"<br>"); }
看上去和String的Split方法一樣,但string的Split方法在由正則表達式而不是一組字符確定的分隔符處拆分字符串。
Match方法是在輸入字符串中搜索正則表達式的匹配項,并Regex 類的 Match 方法返回 Match 對象,Match 類表示正則表達式匹配操作的結果。
感謝各位的閱讀,以上就是“C#正則表達式怎么理解”的內容了,經過本文的學習后,相信大家對C#正則表達式怎么理解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。