C#  匹配测试
测试匹配的作用是将字符串对象与正则表达式进行匹配测验,并返回一个逻辑值数据,当字符串符合正则表达式时返回逻辑真,否则返回逻辑假。在测试匹配时,需要使用Regex类的IsMatch()方法,其使用方法如下所示。
Regex.IsMatch(StringData);
在上面的代码中,Regex关键字表示正则表达式对象的实例;StringData关键字表示被匹配的字符串引用或字符串对象的实例名称。
在正则表达式的字符串前添加“@”符号的作用是防止其字符串中出现特定转义符(例如\w)后导致系统无法识别的错误。如在正则表达式字符串中不包含转义,则可以省略。
如果要进行复杂的匹配测试,例如限定匹配方式的测试,则可以通过静态的方式调用IsMatch()方法,其使用方法如下。
Regex.IsMatch(StringData , RegExpData , RegexOptions);
在上面的代码中,Regex关键字不再是一个具体的正则表达式对象,而应为一个Regex类的抽象引用;StringData关键字表示要匹配的字符串;RegExpData表示正则表达式字符串值;RegexOptions表示匹配的匹配方式枚举。下面将创建一个实例,用于判断用户输入的Email地址,代码如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StrEmailregex匹配
{
    class Program
    {
        public static bool checkEmailFormat(String email)
        {
            String state = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
            return System.Text.RegularExpressions.Regex.IsMatch(email, state);
        }
        static void Main(string[] args)
        {
            Console.Write("请输入您的E-mail地址:");
            String email = Console.ReadLine();
            if (checkEmailFormat(email))
            {
                Console.Write("您输入的E-mail是正确的!");
            }
            else
            {
                Console.Write("您输入的E-mail格式错误!请再次输入:");
                String strEmail = Console.ReadLine();
                if (checkEmailFormat(strEmail))
                {
                    Console.Write("您输入的E-mail是正确的!");
                }
                else
                {
                    Console.Write("您输入的E-mail格式错误!");
                }
            }
        }
    }
}
在上述代码中,首先,编写checkEmailFormat()函数,用于判断用户输入数据是否符合要求。然后,在main()函数中获取用户输入,调用checkEmailFormat()函数判断用户输入,并根据判断结果返回相应的信息。执行上述代码,结果如图4-10所示。
图4-10  判断Email正则表达式

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。