C#正則表達式

1. 使用到的類

    C#中使用正則表達式須要以下幾個類(類所在的命名空間爲:System.Text.RegularExpressions):
        * Regex 編譯後的表達式的實例
        * RegexOptions 提供用於設置正則表達式的枚舉值
        * RegexCompilationInfo:提供編譯器用於將正則表達式編譯爲獨立程序集的信息
        * Capture: 包含一次匹配的結果; 
        * CaptureCollection: Capture的序列; 
        * Group: 一次組記錄的結果,由Capture繼承而來; 
        * GroupCollection:表示捕獲組的集合
        * Match: 一次表達式的匹配結果,由Group繼承而來; 
        * MatchCollection: Match的一個序列; 
        * MatchEvaluator: 執行替換操做時使用的委託; html

2. 類方法介紹

    Regex類中還包含一些靜態的方法: 
        Escape:       對字符串中的regex中的轉義符進行轉義; 
        IsMatch:     若是表達式在字符串中匹配,該方法返回一個布爾值; 
        Match:       返回Match的實例; 
        Matches:    返回一系列的Match的方法; 
        Replace:      用替換字符串替換匹配的表達式; 
        Split:          返回一系列由表達式決定的字符串; 
        Unescape:   不對字符串中的轉義字符轉義。
正則表達式

3. 如何用?

    3.1 新建一個Regex實例對象

/** 
 * 使用兩個參數的構造
 * 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]*");



    3.2 獲取匹配結果,調用Regex對象的match方法

    

/**
 * 獲取匹配結果對象
 * 匹配結果Match類對象的屬性:
 *   Success:匹配是否成功
 *   Value: 若是匹配成功,那麼能夠取得匹配的子字符串
 * 方法:
 *   NextMatch: 從上一個匹配結果的位置開始,返回包含下一匹配結果的新Match對象
 */
Match match = regex.Match(text);


    3.3 獲取匹配結果子字符串

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();
}


    3.4 經常使用的正則表達式

    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#

4. 參考博客 

     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

            
相關文章
相關標籤/搜索