探寻者飞

我正像学走路的娃娃,期盼有一天会跑、会飞翔......

博客园 首页 新随笔 联系 订阅 管理

7.4.2  使用Regex类

【本节示例参考:\示例代码\C01\ Example_Match】

Regex类包含若干静态方法,用于使用正则表达式进行字符串匹配,常用属性和方法如图7.7所示。

最常用的方法为Match,在输入字符串参数中搜索正则表达式的匹配项,并将匹配成功的结果作为单个Match对象返回。常用形式为:

public static Match Match( string input, string pattern);

其中,方法的参数patten为一个正则表达式,而input为待匹配的字符串。方法返回一个Match对象。Match对象可以表示单个正则表达式匹配的结果。

下面是一个使用Regex的Match方法进行正则表达式匹配的示例,利用一个正则表达式,来验证一个字符串是否是一个合法的电子邮件地址。


代码7-26  验证电子邮件地址示例:Class1.cs

 

 1public void test()
 2
 3
 4  string input = "zhangsan@sina.com";                                                            //待匹配的输入串
 5
 6  string patten = @"[a-zA-Z]+@[a-zA-Z]+\.com$";                                                          //正则表达式
 7                       
 8  Regex r = new Regex(patten);       //声明一个Regex对象
 9
10  Match m = r.Match(input);          //使用Match方法进行匹配
11  if(m.Success)  //循环输出所有的匹配子串
12  {
13    Console.WriteLine(m.Value);
14  }
 
15  else
16  {
17    Console.WriteLine("Invalid Email Address!");
18  }

19}

代码第6行定义了一个正则表达式“[a-zA-Z]+@[a-zA-Z]+\.com$”,其规则为非空字符串+‘@’+非空字符串+“.com”,具体的含义将在下一节讨论。

第8行声明了一个Regex对象,并通过构造函数为其设置正则表达式;第10行使用Match函数对input字符串进行正则匹配,并将匹配成功的结果串放入一个Match对象。

第11行使用Match对象的Success属性来判断是否匹配成功。如果成功,则输出匹配串,否则,输出错误提示信息。

可以看出,使用Regex类进行字符串的模式匹配非常简单,真正的难点在于正则表达式的构造。

posted on 2007-07-20 08:56  探寻者飞  阅读(232)  评论(0编辑  收藏  举报