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();
}
Regex类的更多相关文章
- C#正则表达式Regex类的用法
C#正则表达式Regex类的用法 更多2014/2/18 来源:C#学习浏览量:36891 学习标签: 正则表达式 Regex 本文导读:正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串, ...
- C#正则表达式编程(二):Regex类用法
上一篇讲述了在C#中有关正则表达式的类之间的关系,以及它们的方法,这一篇主要是将Regex这个类的用法的,关于Match及MatchCollection类会在下一篇讲到.对于正则表达式的应用,基本上可 ...
- C# Regex类用法
使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现全部匹配输出 string str = "test43232 ...
- C#正则表达式Regex类
C#正则表达式Regex类的使用 C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间 ...
- 用Regex类计算一个字符串出现次数是最好方法【转载】
我的一个朋友问我,怎么在c#或vb.net中,计算一个字符串中查找另一个字符串中出现的次数,他说在网上打了好多方法,我看了一下,有的是用replace的方法去实现,这种方法不是太好,占资源太大了.其实 ...
- C#正则表达式Regex类使用
作为文本处理的利器——Perl语言对正则表达式的最强大支持起到了重要的作用,正因为如此,许多其他语言在加入正则表达式引擎的时候都会或多或少的兼顾perl风格的正则表达式,开发出相应的引擎.本人使用pe ...
- (转)regex类(个人理解)
regex类(个人理解) C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找 ...
- C#正则表达式Regex类的介绍
一.在C#中,要使用正则表达式类,请在源文件开头处添加以下语句: using System.Text.RegularExpressions; 二.RegEx类常用的方法 1.静态Match方法 使用静 ...
- C#正则表达式Regex类的使用
C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间所在DLL基本上在所有的项目模板中 ...
- (转)C#正则表达式Regex类的用法
原文地址如下:http://www.studyofnet.com/news/297.html 一.C#正则表达式符号模式 字 符 描 述 \ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反 ...
随机推荐
- 转:C# 定时任务实现
原文地址:http://blog.csdn.net/Netself/article/details/5766398 C#实现的定时任务类,核心代码如下: 以下代码可直接封装成 TimerTask.dl ...
- 【剑指offer】面试题26:复杂链表的复制
题目: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点). 思路: 复制自身到下一个结点: 设置新结点的random指针: 分离链表. 注意:判 ...
- 【HDU1394】Minimum Inversion Number(线段树)
大意:n次操作原串查询逆序数,求出所有串中最小的逆序数. 求逆序数属于线段树的统计问题,建立空树,每次进行插点时进行一次query操作即可.n次操作可以套用结论:如果是0到n的排列,那么如果把第一个数 ...
- Redis 该选择哪种持久化配置
这个标题或许会让你想起<黑客帝国>里经典的台词,你要选择蓝色药丸,还是红色药丸? Redis 是我们重度使用的一个开源软件,对它的持久化配置做一番相对深入的总结,是值得的.目前它有两种主流 ...
- 解决一个maven在eclipse中M2_HOME不能调整的问题
在坚持了许久之后,依然还是没能抵住maven的各种攻击,终于从0开始maven. 开始由于有关小项目,时间紧任务重,没仔细研究maven,便匆匆上手了,导致maven库的位置放在了c盘当前用户的数据目 ...
- ThinkPHP视图查询详解
ThinkPHP视图查询详解 参考http://www.jb51.net/article/51674.htm 这篇文章主要介绍了ThinkPHP视图查询,需要的朋友可以参考下 ThinkP ...
- 已解决 C# 调用 MySQLDriverCS 类库 报 vshost32-clr2.exe 已停止工作
这几天修改一个项目是用C# 通过调用 MySQLDriverCS.dll 类库来操作 MySql数据库, 调试的会发生以上错误(直接运行是正常的),刚开始以为是兼容性问题,吧此错误百度上一粘贴有的人说 ...
- JQuery.validate在ie8下不支持解决方案
一.在ie8下回有问题的代码 1.JQuery.validate验证框架是通过页面form表单提交验证<input/>标签中输入是否符合自己的规则的 <form id="c ...
- android 中使用缓存加载数据
最近app快完工了,但是很多列表加载,新闻咨询等数据一直从网络请求,速度很慢,影响用户体验,所以寻思用缓存来加载一些更新要求不太高的数据 废话不多说,上代码 欢迎转载,但请保留文章原始出处:) 博客 ...
- 0118——RTLabel和正则表达式
RTLabel和RegexKitLite都要导入第三方库 使用Regexkitlite库进行正则表达式的解析 1.库是使用MRR,如果在ARC工程里面使用这个类,必须在project->buil ...