• .NET中的正则表达式 (三)RegexCompilationInfo 类


    RegexCompilationInfo 类

    提供编译器用于将正则表达式编译为独立程序集的信息。

    属性

    IsPublic:获取或设置一个值,该值指示所编译的正则表达式是否具有公共可见性。

    Name:获取或设置用于所编译的正则表达式的类型名称。

    Namespace:获取或设置要将新类型添加到的命名空间。

    Options:获取或设置编译正则表达式时使用的编译器选项。

    Pattern:获取或设置要编译的正则表达式。

    方法

    Equals:已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)

    GetHashCode:用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。)

    GetType:获取当前实例的 Type。 (从 Object 继承。)

    ReferenceEquals:确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。)

    ToString:返回表示当前 Object 的 String。 (从 Object 继承。)

    示例

    面的代码示例通过三个步骤定义、创建和使用编译过的正则表达式。

    第一个步骤将编译下面的代码示例。代码示例中的 RegexCompilationInfo 构造函数准备了一个正则表达式以供编译

    // This code example demonstrates the RegexCompilationInfo constructor
    // and the Regex.CompileToAssembly() method.
    // compile: csc genFishRegex.cs
     
    namespace MyApp
    {
        using System;
        using System.Reflection;
        using System.Text.RegularExpressions;
    10      class GenFishRegEx
    11      {
    12          public static void Main()
    13          {
    14  // Pattern = Group matches one or more word characters, 
    15  //           one or more white space characters, 
    16  //           group matches the string "fish".
    17          string pat = @"(/w+)/s+(fish)";
    18   
    19  // Create the compilation information.
    20  // Case-insensitive matching; type name = "FishRegex"; 
    21  // namespace = "MyApp"; type is public.
    22          RegexCompilationInfo rci = new RegexCompilationInfo(
    23                      pat, RegexOptions.IgnoreCase, 
    24                      "FishRegex", "MyApp", true);
    25   
    26  // Setup to compile.
    27          AssemblyName an = new AssemblyName();
    28          an.Name = "FishRegex";
    29          RegexCompilationInfo[] rciList = { rci };
    30   
    31  // Compile the regular expression.
    32          Regex.CompileToAssembly(rciList, an);
    33          }
    34      }
    35  }
    36   
    37  /*
    38  This code example produces the following results:
    39   
    40  (Execute this code to generate the compiled regular 
    41  expression assembly named FishRegex.dll.
    42  Use FishRegex.dll as a reference when compiling 
    43  useFishRegex.cs.)
    44   
    45  */
    46   

    第二步:运行第一个步骤中编译的可执行文件。该可执行文件创建 FishRegex.dll 程序集以及一个名为 FishRegex 的编译过的正则表达式类型。

    第三步:使用对 FishRegex.dll 的引用编译下面的代码示例,然后运行得到的可执行文件。该可执行文件使用 FishRegex 类型对目标字符串进行匹配,并显示匹配项、组、捕获组以及匹配项在目标字符串中的索引位置。

    // This code example demonstrates the RegexCompilationInfo constructor.
    // Execute this code example after executing genFishRegex.exe.
    // compile: csc /r:FishRegex.dll useFishRegex.cs
     
    namespace MyApp
      {
      using System;
      using System.Reflection;
      using System.Text.RegularExpressions;
    10   
    11    class UseFishRegEx
    12      {
    13      public static void Main()
    14        {
    15  // Match against the following target string.
    16        string targetString = "One fish two fish red fish blue fish";
    17        int matchCount = 0;
    18        FishRegex f = new FishRegex();
    19   
    20  // Display the target string.
    21        Console.WriteLine("/nInput string = /"" + targetString + "/"");
    22   
    23  // Display each match, capture group, capture, and match position.
    24        foreach (Match m in f.Matches(targetString))
    25      {
    26      Console.WriteLine("/nMatch(" + (++matchCount) + ")");
    27      for (int i = 1; i <= 2; i++)
    28        {
    29        Group g = m.Groups[i];
    30        Console.WriteLine("Group(" + i + ") = /"" + g + "/"");
    31        CaptureCollection cc = g.Captures;
    32        for (int j = 0; j < cc.Count; j++)
    33          {
    34          Capture c = cc[j];
    35          System.Console.WriteLine(
    36            "Capture(" + j + ") = /"" + c + "/", Position = " + c.Index);
    37          }
    38        }
    39      }
    40        }
    41      }
    42    }
    43   
    44  /*
    45  This code example produces the following results:
    46   
    47  Input string = "One fish two fish red fish blue fish"
    48   
    49  Match(1)
    50  Group(1) = "One"
    51  Capture(0) = "One", Position = 0
    52  Group(2) = "fish"
    53  Capture(0) = "fish", Position = 4
    54   
    55  Match(2)
    56  Group(1) = "two"
    57  Capture(0) = "two", Position = 9
    58  Group(2) = "fish"
    59  Capture(0) = "fish", Position = 13
    60   
    61  Match(3)
    62  Group(1) = "red"
    63  Capture(0) = "red", Position = 18
    64  Group(2) = "fish"
    65  Capture(0) = "fish", Position = 22
    66   
    67  Match(4)
    68  Group(1) = "blue"
    69  Capture(0) = "blue", Position = 27
    70  Group(2) = "fish"
    71  Capture(0) = "fish", Position = 32
    72   
    73  */
    74   
  • 相关阅读:
    sql server 扩展存储过程
    SQL SERVER 数据导出JSON
    Jquery AJAX ASP.NET IIS 跨域 超简单解决办法
    切换 NPM 镜像源
    HTML 简介
    mongoose 安装及配置
    Windows下MongoDB的安装过程及基本配置
    Node.js中npm常用命令大全
    --nodejs详细安装步骤
    Go语言为何说它优雅?-- Golang中的几个常用初始化设计
  • 原文地址:https://www.cnblogs.com/dyufei/p/2573922.html
Copyright © 2020-2023  润新知