zoukankan      html  css  js  c++  java
  • 总结C#正则表达式类的学习及运用

    首先说几个重要的正则表达式类:

    Regex

       Regex 类表示不可变(只读)的正则表达式。它还包含各种静态方法,允许在不显式创建其他类的实例的情况下使用其他正则表达式类。

    下面的代码示例创建了 Regex 类的实例并在初始化对象时定义一个简单的正则表达式。请注意,使用了附加的反斜杠作为转义字符,它将 \. 匹配字符类中的反斜杠指定为原义字符。

      

        示例1:Regex r=new Regex("^.+\w@.+\w\.\w+$");   //^.+\w@.+\w\.\w+$ 匹配E_Mail地址

      Regex 类的常用方法:

      Regex.Match
    在指定的输入字符串中搜索 Regex 构造函数中指定的正则表达式的第一个匹配项。

      Regex.Matches
    在指定的输入字符串中搜索指定的正则表达式的所有匹配项。


    Match

      Match 类表示单个正则表达式匹配操作的结果。

       Match 类的实例由 Regex.Match 方法返回,并表示字符串中的第一个模式匹配项。 后续匹配项由 Match.NextMatch 方法返回的 Match 对象表示。 此外,由零个、一个或多个 Match 对象组成的 MatchCollection 对象由 Regex.Matches 方法返回。

      

    MatchCollection

      MatchCollection 类表示成功的非重叠匹配项的序列。该集合为不可变(只读)的,并且没有公共构造函数。MatchCollection 的实例是由 Regex.Matches 方法返回的。

      如果 Regex.Matches 方法无法与输入字符串中的正则表达式模式匹配,它将返回一个空的 MatchCollection 对象。 然后,可以使用 C# 中的 foreach 构造或 Visual Basic 中的 For Each 构造来循环访问集合。

     以下代码从指定文本中提取指定内容(提取百家姓练习题):

         

     1  string files = File.ReadAllText(@"F:\bjx.txt", Encoding.Default);
     2 
     3            
     4 
     5             string reg = @"〔\w{1}〕";
     6            MatchCollection mat = Regex.Matches(files, reg);//通过正则表达式提取
     7 
     8  
     9 
    10            List<string> aa = new List<string>();   //泛型运用
    11           
    12              //foreach 遍历
    13            foreach (Match m in mat)   //Match类表示单个正则表达式匹配操作的结果
    14            {
    15 
    16                                
    17                aa.Add(m.Value);   //把查找的结果保存到泛型变量中
    18            }
    19 
    20       
    21             for (int i = 0; i < aa.Count; i++)
    22             {
    23                 Console.WriteLine(aa[i]); //输出到屏幕
    24             }
    25            
    26            Console.ReadKey();

    补充一点知识,只匹配汉字:

    [\u2E80-\u9FFF]+
    匹配所有东亚区的语言
     [\u4E00-\u9FFF]+
    匹配简体和繁体
     [\u4E00-\u9FA5]+
    匹配简体

    例:[\u2E80-\u9FFF|,] 包含标点“,”的汉字段。

    已测试。

    补充于2016-10-24

    利用正则表达式验证输入

    要求格式:922_127

    string reg = @"^\d+_\d+$";
    // string reg = @"^\d{1,}_\d{1,}$"; //等价
    bool isMat= System.Text.RegularExpressions.Regex.IsMatch(intendCar, reg);

  • 相关阅读:
    8 网站用户密码保存
    10 XSRF和XSS
    评分预测
    社会化推荐
    借助上下文信息
    UGC
    冷启动
    Git秘籍:在 Git 中进行版本回退
    Google在三大系统上停止对Chrome Apps的支持
    Windows 的 AD 域寄生于 Linux 机器
  • 原文地址:https://www.cnblogs.com/net515/p/2533367.html
Copyright © 2011-2022 走看看