.NET中的正则表达式 (一)Regex 类

 

Regex 类

表示不可变的正则表达式,包含若干静态方法,无需显式创建 Regex 对象即可使用正则表达式。使用静态方法等效于构造 Regex 对象,使用该对象一次然后将其销毁。

Regex 类是不可变(只读)的,并且具有固有的线程安全性。可以在任何线程上创建 Regex 对象,并在线程间共享。

 

Regex r; // 声明一个 Regex类的变量

r = new Regex("//s2000"); // 定义表达式

等价于

Regex r=new Regex("//s2000"); Regex r=new Regex(@"/s2000");

 

 

构造函数:

Regex ()

初始化 Regex 类的新实例。

由 .NET Compact Framework 支持。

Regex (String)

为指定的正则表达式初始化并编译 Regex 类的一个新实例。

由 .NET Compact Framework 支持。

Regex (SerializationInfo, StreamingContext)

使用序列化数据初始化 Regex 类的新实例。

Regex (String, RegexOptions)

用修改模式的选项为指定的正则表达式初始化并编译 Regex 类的一个新实例。

由 .NET Compact Framework 支持。

 

常用方法:

 

说明

 

CompileToAssembly

已重载。 编译正则表达式,并将其保存到单个程序集的磁盘中。

Equals 

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

Escape

通过替换为转义码来转义最小的元字符集(/、*、+、?、|、{、[、(、)、^、$、.、# 和空白)。

GetGroupNames

返回正则表达式的捕获组名数组。

GetGroupNumbers

返回与数组中的组名相对应的捕获组号的数组。

GetHashCode 

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

GetType 

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

GroupNameFromNumber

获取与指定组号相对应的组名。

GroupNumberFromName

返回与指定组名相对应的组号。

IsMatch

已重载。 指示正则表达式在输入字符串中是否找到匹配项。

Match

已重载。 在输入字符串中搜索正则表达式的匹配项,并将精确结果作为单个 Match 对象返回。

Matches

已重载。 在输入字符串中搜索正则表达式的所有匹配项并返回所有成功的匹配,就像多次调用Match 一样。

ReferenceEquals 

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

Replace

已重载。 用指定的替换字符串替换由正则表达式定义的字符模式的所有匹配项。

Split

已重载。 在由正则表达式匹配项定义的位置将输入字符串拆分为一个子字符串数组。

ToString

已重写。 返回传入 Regex 构造函数的正则表达式模式。

Unescape

取消转义输入字符串中的任何转义字符。

 

  受保护的方法

名称

说明

Finalize 

允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。

InitializeReferences

由 CompileToAssembly 方法生成的 Regex 对象使用。

MemberwiseClone 

创建当前 Object 的浅表副本。 (从 Object 继承。)

UseOptionC

由 CompileToAssembly 方法生成的 Regex 对象使用。

UseOptionR

由 CompileToAssembly 方法生成的 Regex 对象使用。

 

属性

名称

说明

CacheSize

获取或设置已编译正则表达式的当前 Regex 对象的缓存中的最大项数。

Options

返回传入 Regex 构造函数的选项。

RightToLeft

获取一个值,该值指示正则表达式是否从右向左进行搜索。

 

 示例

下面的代码示例演示如何使用正则表达式检查字符串是否具有表示货币值的正确格式。注意,如果使用 ^ 和 $ 封闭标记,则指示整个字符串(而不只是子字符串)都必须匹配正则表达式。

C#

using System;
using System.Text.RegularExpressions;

public class Test
{

    public static void Main ()
    {

          // Define a regular expression for currency values.
          Regex rx = new Regex(@"^-?/d+(/./d{2})?$");
         
          // Define some test strings.
          string[] tests = {"-42", "19.99", "0.001", "100 USD"};
         
          // Check each test string against the regular expression.
          foreach (string test in tests)
          {
              if (rx.IsMatch(test))
              {
                  Console.WriteLine("{0} is a currency value.", test);
              }
              else
              {
                  Console.WriteLine("{0} is not a currency value.", test);
              }
          }
        
    }   
   
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值