总结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);

原文地址:https://www.cnblogs.com/net515/p/2533367.html