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

            
相关文章
相关标签/搜索