使用Regex类

本文介绍如何使用Regex类的Match方法进行正则表达式匹配,通过实例演示了如何验证一个字符串是否为合法的电子邮件地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
使用Regex类

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

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

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

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

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

图7.7 Regex类图

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

1.                                                    public void test()

2.                                                    {

3.                                                            string input = "zhangsan@sina.com";                                                            //待匹配的输入串

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类进行字符串的模式匹配非常简单,真正的难点在于正则表达式的构造。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值