使用Regex类

 
使用Regex类

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

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

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

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

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

0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" border=0>

图7.7 Regex类图

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

1.                                                    public void test()

2.                                                    {

3.                                                            string input = "[email protected]";                                                            //待匹配的输入串

4.                                                          string patten = @"[a-zA-Z]+@[a-zA-Z]+/.com$";                                                          //正则表达式

5.                                                     

6.                                                            Regex r = new Regex(patten);       //声明一个Regex对象

7.                                                            Match m = r.Match(input);          //使用Match方法进行匹配

8.                                                            if(m.Success)  //循环输出所有的匹配子串

9.                                                          {

10.                                                               Console.WriteLine(m.Value);

11.                                                         }

12.                                                        else

13                    {

14                          Console.WriteLine("Invalid Email Address!");

15                    }

16.             }

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

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

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

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

你可能感兴趣的:(C#)