C#中使用正則表達式須要以下幾個類(類所在的命名空間爲:System.Text.RegularExpressions):
* Regex 編譯後的表達式的實例
* RegexOptions 提供用於設置正則表達式的枚舉值
* RegexCompilationInfo:提供編譯器用於將正則表達式編譯爲獨立程序集的信息
* Capture: 包含一次匹配的結果;
* CaptureCollection: Capture的序列;
* Group: 一次組記錄的結果,由Capture繼承而來;
* GroupCollection:表示捕獲組的集合
* Match: 一次表達式的匹配結果,由Group繼承而來;
* MatchCollection: Match的一個序列;
* MatchEvaluator: 執行替換操做時使用的委託; html
Regex類中還包含一些靜態的方法:
Escape: 對字符串中的regex中的轉義符進行轉義;
IsMatch: 若是表達式在字符串中匹配,該方法返回一個布爾值;
Match: 返回Match的實例;
Matches: 返回一系列的Match的方法;
Replace: 用替換字符串替換匹配的表達式;
Split: 返回一系列由表達式決定的字符串;
Unescape: 不對字符串中的轉義字符轉義。
正則表達式
/** * 使用兩個參數的構造 * RegexOptions屬於枚舉類型,包括IgnoreCase(忽略大小寫)、ReghtToLeft(從右向左)、None(默認)、CultureInvariant(忽略區域)、Multline(多行模式)和SingleLine(單行模式)) * */ Regex regex = new Regex(@"[+-]{1}\d{1,}[.]*[0-9]*", RegexOptions.None); // 或者 Regex regex = new Regex(@"[+-]{1}\d{1,}[.]*[0-9]*");
/** * 獲取匹配結果對象 * 匹配結果Match類對象的屬性: * Success:匹配是否成功 * Value: 若是匹配成功,那麼能夠取得匹配的子字符串 * 方法: * NextMatch: 從上一個匹配結果的位置開始,返回包含下一匹配結果的新Match對象 */ Match match = regex.Match(text);
while(match.Success) { Console.WriteLine(match.Value); match = match.NextMatch(); }
string text = @"Flow -0880.809 m3/h"; Regex regex = new Regex(@"[+-]{1}\d{1,}[.]*[0-9]*", RegexOptions.None); Console.WriteLine("regex match count:" + regex.Matches(text).Count); Match match = regex.Match(text); if (match.Success) { Console.WriteLine(match.Value); match = match.NextMatch(); }
IP地址匹配:
簡單的匹配: (\d{1,3}\.){3}\d{1,3}
正確的匹配: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) c#
http://blog.csdn.net/begtostudy/article/details/3081083
http://www.cnblogs.com/Fskjb/archive/2010/01/22/1654439.html
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
http://zhoufoxcn.blog.51cto.com/792419/283021 lua