正則表達式提供了功能強大、靈活而又高效的方法來處理文本。正則表達式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;驗證文本以確保它匹配預定義的模式(如電子郵件地址);提取、編輯、替換或刪除文本子字符串;將提取的字符串添加到集合以生成報告。 對于處理字符串或分析大文本塊的許多應用程序而言,正則表達式是不可缺少的工具。,主要是用在以下幾個方面。
查找一般也有兩個應用場景,一是在做表單輸入驗證,此時需用到Regex類的IsMatch方法。另一個是當你需要在一大段文本中查找出符合規則的內容時,這時要用到Regex類的Matche或Matches方法。
當在服務端要對表單輸入做驗證的時候,我們通常會這樣做,代碼如下。
/// <summary> /// 表單輸入驗證時 /// </summary> [TestMethod] public void RegexFind1() { bool result = Regex.IsMatch("0717-11112222", @"^0/d{2,3}-/d{8}$",RegexOptions.IgnoreCase); }
返回結果為bool值,注意這里的正則我用到了兩個元字符^和$,關于它們的作用我們后面會講到。
當我們需要在一大段文本中查找符合定義規則的內容時,我們通常會像下面這樣做,代碼如下。
/// <summary> /// 從一段文本中查找符合規則的字符串 /// </summary> [TestMethod] public void RegexFind2() { List<string> result = new List<string>(); string input = "027-11112222@0717-22223333@020-55552222@0769-14528745"; string pattern = @"0/d{2,3}-/d{8}"; MatchCollection matchList= Regex.Matches(input, pattern, RegexOptions.IgnoreCase); if (matchList != null && matchList.Count > 0) { foreach (Match match in matchList) { result.Add(match.Value); } } }
返回結果是一個列表,如下圖。
關于替換,通常是通過調用 Regex類的Replace 方法替換匹配正則表達式模式的文本,得到我們想要的結果。示例代碼如下。
/// <summary> /// 將輸入字符串中的Mr.,Mrs.,Miss.和Ms.替換成空格 /// </summary> [TestMethod] public void RegexReplace() { string input = "Mr. Henry Hunt,Ms. Sara Samuels,Abraham Adams,Ms. Nicole Norris"; string pattern = @"(Mr/.?/s|Mrs/.?/s|Miss/s|Ms/.?/s)"; string result = Regex.Replace(input,pattern,string.Empty); }
程序輸出結果如下圖。
可以發現,符合規則的內容都被移除了。
分割暫時還沒有用過,待后面再補充。。。
新聞熱點
疑難解答