在C#中使用正則表示式最簡單的方式
阿新 • • 發佈:2022-04-15
更新記錄
本文遷移自Panda666原部落格,原發布時間:2021年5月11日。
在.NET中使用正則表示式與其他語言並無太大差異。最簡單的使用就是使用Regex型別自帶的靜態方法。
注意:在.NET中使用正則表示式記得引用名稱空間:
using System.Text.RegularExpressions;
檢測正則是否匹配成功
使用Regex.IsMatch方法即可,該方法返回一個bool值。
提示:在本文最底下有完整的例項。
例項程式碼:
if(Regex.IsMatch(beMatch, pattern)) { Console.WriteLine("匹配成功"); } else { Console.WriteLine("請檢查程式碼"); }
使用正則匹配單個字串
使用Regex.Match方法即可,該方法返回一個Match型別例項。
提示:在本文最底下有完整的例項。
例項程式碼:
Match result1 = Regex.Match(beMatch, pattern);
使用正則匹配多個字串
使用Regex.Matches方法即可,該方法返回一個MatchCollection型別例項。
提示:在本文最底下有完整的例項。
例項程式碼:
MatchCollection result2 = Regex.Matches(beMatch, pattern);
完整例項程式碼
using System; using System.Text.RegularExpressions; namespace RegexTest { class Program { static void Main(string[] args) { //被匹配的字串 string beMatch = @"https://www.panda666.com| https://panda666.com|panda666|666|panda"; //匹配模式 string pattern = @"(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"; //檢測是否匹配成功 if(Regex.IsMatch(beMatch, pattern)) { Console.WriteLine("匹配成功"); } else { Console.WriteLine("請檢查程式碼"); } //獲得匹配的內容(單個) Console.WriteLine("獲得匹配的內容(單個)"); Match result1 = Regex.Match(beMatch, pattern); Console.WriteLine(result1.Value); //匹配到的值 Console.WriteLine(result1.Success); //匹配是否成功 Console.WriteLine(result1.Index); //匹配到的起始位置 Console.WriteLine(result1.Length); //匹配到的值的長度 //獲得匹配內容(多個) Console.WriteLine("獲得匹配內容(多個)"); MatchCollection result2 = Regex.Matches(beMatch, pattern); foreach (Match item in result2) { Console.WriteLine(item.Success); Console.WriteLine(item.Value); Console.WriteLine(item.Index); Console.WriteLine(item.Length); } //wait Console.ReadKey(); } } }