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小时内删除。
发表评论