Regex 类
表示不可变的正则表达式,包含若干静态方法,无需显式创建 Regex 对象即可使用正则表达式。使用静态方法等效于构造 Regex 对象,使用该对象一次然后将其销毁。
Regex 类是不可变(只读)的,并且具有固有的线程安全性。可以在任何线程上创建 Regex 对象,并在线程间共享。
Regex r; // 声明一个 Regex类的变量
r = new Regex("//s2000"); // 定义表达式
等价于
Regex r=new Regex("//s2000"); 或 Regex r=new Regex(@"/s2000");
构造函数:
初始化 Regex 类的新实例。 由 .NET Compact Framework 支持。 | |
为指定的正则表达式初始化并编译 Regex 类的一个新实例。 由 .NET Compact Framework 支持。 | |
使用序列化数据初始化 Regex 类的新实例。 | |
用修改模式的选项为指定的正则表达式初始化并编译 Regex 类的一个新实例。 由 .NET Compact Framework 支持。 |
常用方法:
说明 |
|
已重载。 编译正则表达式,并将其保存到单个程序集的磁盘中。 | |
已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。) | |
通过替换为转义码来转义最小的元字符集(/、*、+、?、|、{、[、(、)、^、$、.、# 和空白)。 | |
返回正则表达式的捕获组名数组。 | |
返回与数组中的组名相对应的捕获组号的数组。 | |
用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。) | |
获取当前实例的 Type。 (从 Object 继承。) | |
获取与指定组号相对应的组名。 | |
返回与指定组名相对应的组号。 | |
已重载。 指示正则表达式在输入字符串中是否找到匹配项。 | |
已重载。 在输入字符串中搜索正则表达式的匹配项,并将精确结果作为单个 Match 对象返回。 | |
已重载。 在输入字符串中搜索正则表达式的所有匹配项并返回所有成功的匹配,就像多次调用Match 一样。 | |
确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。) | |
已重载。 用指定的替换字符串替换由正则表达式定义的字符模式的所有匹配项。 | |
已重载。 在由正则表达式匹配项定义的位置将输入字符串拆分为一个子字符串数组。 | |
已重写。 返回传入 Regex 构造函数的正则表达式模式。 | |
取消转义输入字符串中的任何转义字符。 |
受保护的方法
名称 | 说明 |
允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 | |
由 CompileToAssembly 方法生成的 Regex 对象使用。 | |
创建当前 Object 的浅表副本。 (从 Object 继承。) | |
由 CompileToAssembly 方法生成的 Regex 对象使用。 | |
由 CompileToAssembly 方法生成的 Regex 对象使用。 |
属性
名称 | 说明 |
获取或设置已编译正则表达式的当前 Regex 对象的缓存中的最大项数。 | |
返回传入 Regex 构造函数的选项。 | |
获取一个值,该值指示正则表达式是否从右向左进行搜索。 |
示例
下面的代码示例演示如何使用正则表达式检查字符串是否具有表示货币值的正确格式。注意,如果使用 ^ 和 $ 封闭标记,则指示整个字符串(而不只是子字符串)都必须匹配正则表达式。
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);
}
}
}
}