本文的发布号曾为 CHS308252
本文讨论一种 Microsoft 产品的 Beta 版本。本文中的信息按"原样"提供,如有更改恕不另行通知。
对于该 Beta 产品,Microsoft 不提供正式的产品支持。有关获取对 Beta 版本的支持的信息,请参阅 Beta 产品文件中包括的文档资料,或查看您下载此版本的站点。
有关本文的 Microsoft C# .NET 版本,请参阅 301264。
对于该 Beta 产品,Microsoft 不提供正式的产品支持。有关获取对 Beta 版本的支持的信息,请参阅 Beta 产品文件中包括的文档资料,或查看您下载此版本的站点。
有关本文的 Microsoft C# .NET 版本,请参阅 301264。
本任务的内容
概要
本文演示如何创建和使用正则表达式以确定字符串是否与某些模式匹配。使用正则表达式可以很容易地对字符串进行语法分析并将字符串与特定的模式进行匹配。使用 RegularExpressions 名称空间中可用的对象,您可以将一个字符串与一个给定的模式进行比较,用另一字符串代替某一字符串模式,或只取出格式字符串的特定部分。本示例中,我们将构造一个模式来检验一个电子邮件地址。返回页首
要求
下面的列表概括了推荐使用的硬件、软件、网络架构以及所需的 Service Pack:- Microsoft Visual C# .NET
- 了解 Visual C# .NET
- 基本了解正则表达式
使用正则表达式匹配模式
- 打开 Visual Studio .NET。
- 新建一个 Visual C# 控制台应用程序。
- 在 Text.RegularExpressions 名称空间指定 using 关键字,这样在后面代码中遇到这些名称空间时就无需对声明加以限定了。using 语句必须在其他任何声明之前使用。
using System.Text.RegularExpressions;
- 定义一个新的正则表达式,它将使用模式匹配来验证电子邮件地址。下面构造的这一正则表达式有三个作用:
- 捕获 @ 符号前的子字符串并将它放入"user"组。
- 捕获 @ 符号后的子字符串并将它放入"host"组。
- 确保字符串的前半部分中没有 @ 符号。
Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
- 定义一个包含一个有效电子邮件地址的新字符串。这样就可以在方法的命令行参数为空时提供一个默认值:
String s = "johndoe@tempuri.org";
- 检查是否有命令行参数;如果有,取第一个参数并将它赋予变量"s"。
if ( args.Length > 0 ) { s = args[0]; }
- 使用 Match 方法传递电子邮件地址变量并返回一个新 Match 对象。无论在源字符串中是否找到了匹配项,Match 对象都将返回。
Match m = emailregex.Match(s);
- 通过检查 Success 属性,我们就可以决定是继续处理 Match 对象还是显示一个错误消息。如果成功,则在 Match 对象的 Groups 集合中显示名为"user"和"host"的组。
if ( m.Success ) { Console.WriteLine("User:" + m.Groups["user"].Value); Console.WriteLine("Host:" + m.Groups["host"].Value); } else { Console.WriteLine(s + " is not a valid email address"); } Console.WriteLine();
- 如想在运行该应用程序后让控制台窗口保持打开,则可以添加下面几行代码:
System.Console.WriteLine("Press Enter to Continue..."); System.Console.ReadLine();
- 生成项目。
- 如想用代码中指定的默认电子邮件地址在开发环境中运行该应用程序,请按 F5 或选择调试菜单中的开始按钮。如想用一个命令行参数启动该应用程序,则有两个选项可供选择:
- 打开一个命令窗口并定位到您的项目所在的文件夹下的"bin/debug"文件夹。然后键入可执行文件的名称,后面跟着要测试的电子邮件地址。
- 找到此项目的可执行文件,将它拖到任务栏上的 Start...Run(开始...运行)窗口。添加要检验的电子邮件地址,并单击或按确定。
参考
- 正则表达式语法
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript/doc/jsgrpregexpsyntax.htm - 正则表达式简介
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript/doc/reconIntroductionToRegularExpressions.htm - 正则表达式语言元素(Microsoft .NET 框架通用参考)
- Regex 类(Microsoft .NET 框架类库)
- 作为语言的正则表达式(Microsoft .NET 框架开发指南)
这篇文章中的信息适用于:
- Microsoft Visual C# .NET Beta 2
最近更新: | 2001-10-26 (1.0) |
关键字 | kbDSupport kbhowto kbHOWTOmaster KB308252 kbAudDeveloper |