相关文章推荐
曾深爱过的眼镜  ·  04、Flutter FFI ...·  2 年前    · 
原始 KB 编号: 308252

正则表达式允许轻松地分析和匹配特定模式的字符串。 使用命名空间中 RegularExpressions 可用的对象,可以将字符串与给定模式进行比较,将字符串模式替换为另一个字符串,或者仅检索格式化字符串的一部分。 在此示例中,我们将构造一个模式来验证电子邮件地址。 本文引用 Microsoft .NET Framework 类库命名空间 System.Text.RegularExpressions

本文假定你熟悉以下主题:

  • Visual C#
  • 正则表达式语法
  • 使用正则表达式匹配模式

  • 启动 Visual C#。

  • 创建新的 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 对象还是打印错误消息。 如果成功,请在 user 对象的集合中Groups显示 和 host 命名组Match

    if (m.Success)
        Console.WriteLine ("User: " + m.Groups["user"].Value);
        Console.WriteLine ("Host: " + m.Groups["host"].Value);
        Console.WriteLine (s + " is not a valid email address");
    Console.WriteLine ();
    
  • 若要在运行应用程序后使控制台窗口保持打开状态,请添加以下代码行:

    System.Console.WriteLine("Press Enter to Continue...");
    System.Console.ReadLine();
    
  • 生成项目。

  • 若要使用代码中指定的默认电子邮件地址在开发环境中运行应用程序,请按 F5 或从“调试”菜单中选择“启动”。 若要使用命令行参数启动应用程序,有三个选项:

  • 在“ 项目 ”菜单上,单击“ 属性”,然后单击“ 调试”。 在右窗格的 “开始选项” 部分中,指定要测试的电子邮件地址。 按 F5,或单击“调试”菜单上的“开始”以运行应用程序。
  • 启动命令窗口,导航到项目所在的文件夹下的 bin调试 文件夹。 然后键入可执行文件的名称,后跟要测试的电子邮件地址。
  • 找到此项目的可执行文件,并将其拖动到 “开始...”。 任务栏上的“运行”窗口。 添加要验证的电子邮件地址,然后单击“ 确定”。
  • JavaScript) (正则表达式简介
  • 正则表达式语言元素
  •