Regex类

一、属性

CacheSize   获取或设置已编译的正则表达式的当前静态缓存中的最大项数。 默认是15个,最近使用的15个会存在缓存中,避免重新创建。当有第16个进来会替换掉第         1个。保持15个。

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

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

二、方法

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

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

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

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

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

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

InitializeReferences    基础结构。 由 CompileToAssembly 方法生成的 Regex 对象使用。

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

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

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

Replace         已重载。 在指定的输入字符串内,使用指定的替换字符串替换与某个正则表达式模式匹配的字符串。

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

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

UseOptionC       基础结构。 由 CompileToAssembly 方法生成的 Regex 对象使用。

UseOptionR       基础结构。 由 CompileToAssembly 方法生成的 Regex 对象使用。

  代码示例:

static void Main(string[] args)
        {
            Regex reg = new Regex(@"\d+");
            Regex.CacheSize = 1000;             //最大静态缓存项数,不知道用来干嘛的
            Console.WriteLine(reg.Options);     //输出 Singleline 构造函数中的选项
            Console.WriteLine(reg.RightToLeft); //输出 False  是否从右向左搜索

            Console.WriteLine(Regex.Escape(@"\d+"));    //输出 \\d\+  这个Escape    方法用于动态获取的变量生成的正则表达式,这时如果变量中含有正则中的元字符,会被解析成元字符,就可能会导致正则编译不通过,从而导致程序异常,需要对变量进行转义处理。比如根据用户输入的id获取Html控件,如果这个用户输入的控件id含有元字符,那么就会抛异常,这个时候就可以用Escape转码一下
            Console.WriteLine(Regex.Unescape(@"\\d\+"));    //输出    \d+     反转码,获取转码之前的字符串

            Console.WriteLine(reg.IsMatch("123"));      //输出 True
            Console.WriteLine(reg.IsMatch("abc"));      //输出 False

            Console.WriteLine(reg.Match("1a"));         //输出 1  返回精确的匹配到的结果

            MatchCollection col = reg.Matches("12a34b45d");  //match与matches的区别在于match返回第一个匹配,而matches返回全部的匹配
            foreach (var c in col)
            {
                Console.WriteLine(c.ToString());        //输出 12 34 45
            }

            Console.WriteLine(reg.Replace("ab5cd","k"));    //输出abkcd 替换正则表达式匹配到的字符,第二个参数是用于替换的字符
            Console.WriteLine(reg.Replace("a1b2c3d", "k"));    //输出akbkckdk

            string[] strArr = reg.Split("ab2cd");   //用匹配到的字符将字符串分割成两个字符串数组
            foreach (string str in strArr)
            {
                Console.WriteLine(str);     //输出 ab cd
            }

            Regex reg2 = new Regex(@"(?<数字分组>\d+)abc");
            int[] intArr = reg2.GetGroupNumbers();
            foreach (int i in intArr)
            {
                Console.WriteLine(i);   //输出0 1     0始终代表整个表达式,1就是你自己括起来的我那组
            }

            string[] strGroup = reg2.GetGroupNames();
            foreach (string str in strGroup)
            {
                Console.WriteLine(str);     //输出0   数字分组    至于整个表达式指定不指定意义都不大,反正你肯定知道0是整个组
            }

            Console.WriteLine(reg2.GroupNameFromNumber(1)); //输出 数字分组,根据组号,获取组名
            Console.WriteLine(reg2.GroupNumberFromName("数字分组"));    //输出 1  根据组名获取组号

            Console.ReadKey();
        }
时间: 2024-09-26 20:10:09

Regex类的相关文章

C# Regex类用法

使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现验证 示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是实例方法 var source = "刘备关羽张飞孙权";//Regex regex = new Regex("孙权");//if (regex.IsMatch(source))//{// Console.WriteLine("字符串中包含有敏感词:孙权!&q

C#正则表达式Regex类的使用

C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间所在DLL基本上在所有的项目模板中都不需要单独去添加引用,可以直接使用. 1.定义一个Regex类的实例 Regex regex = new Regex(@"\d");这里的初始化参数就是一个正则表达式,“\d”表示配置数字. 2.判断是否匹配 判断一个字符串,是否匹配一个正则表达式,在Regex对象中,可以使用Regex

C#正则表达式Regex类的介绍

一.在C#中,要使用正则表达式类,请在源文件开头处添加以下语句: using System.Text.RegularExpressions; 二.RegEx类常用的方法 1.静态Match方法 使用静态Match方法,可以得到源中第一个匹配模式的连续子串. 静态的Match方法有2个重载,分别是 Regex.Match(string input, string pattern); Regex.Match(string input, string pattern, RegexOptions opt

C#正则表达式编程(二):Regex类用法

上一篇讲述了在C#中有关正则表达式的类之间的关系,以及它们的方法,这一篇主要是将Regex这个类的用法的,关于Match及MatchCollection类会在下一篇讲到.对于正则表达式的应用,基本上可以分为验证.提取.分割和替换.仅仅利用Regex类就可以实现验证和简单替换.利用Regex类实现验证经历2009年的备案和DNS停止解析风波之后,大部分的带有反馈性的网站和论坛都对一些敏感词进行了过滤,包含有这类敏感词的文章要么内容被替换要么被禁止发表,利用Regex类就可以实现这个功能,下面是一个

正则表达式,Regex类

C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找到"OK"Match m=regex.Match("fjsladfOK");console.writeline(m.tostring());//这是查找OK//结果是:OK2,Regex regex=new Regex(@"\d+");//      \d+是代表数字Match

c#学习笔记《1》——regex类

C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找到"OK"Match m=regex.Match("fjsladfOK");console.writeline(m.tostring());//这是查找OK//结果是:OK2,Regex regex=new Regex(@"\d+");//      \d+是代表数字Match

Java正则表达式java.util.regex类的简单使用

1.什么是正则表达式? 正则表达式(regular expression)是根据字符串集合内每个字符串共享的共同特性来描述字符串集合的一种途径.正则表达式可以用于搜索.编辑或者处理文本和数据. Java.util.regex主要包含以下三类: pattern类: pattern 对象是一个正则表达式的编译表示.Pattern 类没有公共构造方法.要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象.该方法接受一个正则表达式作为它的第一个参数. Ma

【Unity|C#】基础篇(6)——正则表达式(Regex类)

[学习资料] > 在线文档 官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/ 菜鸟教程:https://www.runoob.com/csharp/csharp-tutorial.html > 视频教程 腾讯学院.Siki学院         > 书籍 <C#图解教程>:https://www.cnblogs.com/moonache/p/7687551.html [笔记] 匹配规则传送门:https://www.run

C#正则表达式Regex类的用法

1.字符串替换 例如我想把如下格式记录中的NAME值修改为WANG string line="ADDR=1234;NAME=ZHANG;PHONE=6789"; Regex reg = new Regex("NAME=(.+);"); string modified = reg.Replace(line, "NAME=WANG;"); 修改后的字符串为 ADDR=1234;NAME=WANG;PHONE=6789 2.字符串匹配 例如我想提取刚才