正则表达式的使用(C#)
1, C#中与正则表达式相关类。
C#中与正则表达式相关类的几个常用类是Regex,Match,Group,Captrue,RegexOption首先我们看看这几个类的类图关系,如何你有正则表达式基础,从这些方法和属性中就大概能明白使用方法了。

Regex:与正则表达式相关的操作必须通过它来执行的,它还提供了Match,IsMatch,Replace,Split几个静态的方法。
ResgexOptions:初始化Regex实例的时候,可以指定匹配的选项,如忽略大小写,多行模式等。
Match:一个匹配结果,其中还包含分组Group的一个集合。其中Index为0的分组是默认分组,不管正则表达式中有没有分组,这个Group都是存在的。所以在处理自定义的分组时,要跳过这个分组。
Group:一个分组,包含多个Capture。
Capture:一个捕获。
这3个类有继承关系,可以看上面的例子,所以一些属性如Value在3个类中都是存在的。
2, 简单使用
// 检查是否是数字
if (Regex.IsMatch("956", "[0-9]+"))
{
System.Diagnostics.Debug.WriteLine("数字匹配成功");// 结果:数字匹配成功
}
// 检查是否是字母(忽略大小写)
if (Regex.IsMatch("abcABC", "[a-z]+", RegexOptions.IgnoreCase))
{
System.Diagnostics.Debug.WriteLine("字符匹配成功");// 结果:字符匹配成功
}
// 替换‘abc’(忽略大小写)为‘@’
string res = Regex.Replace("i abc like ABC it", "abc", "@", RegexOptions.IgnoreCase);
// 结果:i @ like @ it // 以‘abc’(忽略大小写)拆分字符串
string[] splits = Regex.Split("i abc like ABC it", "abc", RegexOptions.IgnoreCase);
// 结果为3个字符串,i,like,it // 根据匹配结果,打印出Match,Group,Capture的值
Regex regex = new Regex(this.txtPattern.Text);
var matches = regex.Matches(this.txtInput.Text); string result = string.Empty;
int count = matches.Count;
result += "matches.Count:" + count + Environment.NewLine;
foreach (Match m in matches)
{
result += "matche value:" + m.Value + Environment.NewLine;
result += "matche group count:" + m.Groups.Count + Environment.NewLine;
for (int i = 0; i < m.Groups.Count; i++)
{
Group g = m.Groups[i];
result += "--group " + (i + 1) + Environment.NewLine;
result += "--group Value " + g.Value + Environment.NewLine;
result += "--capture count:" + m.Captures.Count + Environment.NewLine;
for (int j = 0; j < g.Captures.Count; j++)
{
Capture c = g.Captures[j];
result += "----capture " + (j + 1) + Environment.NewLine;
result += "----capture Value " + c.Value + Environment.NewLine;
}
}
}
基本的操作就这些了,一般应用中根据需要对捕获的结果进行具体分析。
关于正则表达式的语法可以参考这几篇文章:
正则表达式基础:http://www.cnblogs.com/xiashengwang/p/3988009.html
正则表达式分组:http://www.cnblogs.com/xiashengwang/p/3988573.html
正则表达式的使用(C#)的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
- JS中给正则表达式加变量
前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下. 一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...
随机推荐
- IAR仿真时绿色箭头一直指向汇编界面,而C界面没有
设置如下
- [转]Java的文件读写操作
file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStr ...
- Windows Mobile入门
转自 http://www.cnblogs.com/peterzb/archive/2009/05/12/1455256.html [准备篇] 最近安排做手机视频监控方面开发,这个对我来 ...
- 使用gradle多渠道打包
以友盟的多渠道打包为例,如果我们须要打包出例如以下渠道:UMENG, WANDOUJIA, YINGYONGBAO. 第一种方法.是须要创建文件的. 我们在写完我们的代码之后,在app/src以下.分 ...
- [tools]hugo&github构建静态网站/百度统计
hugo/github构建网站基本原理 1.hugo是一个静态化的工具,你写md,然后他把md转换成对应样式的html, 2.并给html嵌入百度统计的script.然后你将html放到github上 ...
- iOS7相机隐私判断
转自:http://borissun.iteye.com/blog/1992303 装了iOS7的ip5的隐私设置里多了相机这一项(ip4装iOS7就没有). 如果隐私里把你的app对应的相机给关了, ...
- K8S 详细介绍
k8s的中文文档,参考地址:http://docs.kubernetes.org.cn/227.html
- hdu 2680 Choose the best route (dijkstra算法)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2680 /************************************************* ...
- rsync 实现文件同步 (重要数据通过rsyncr把数据同步到不同的两台服务器上,这样可以防止服务器的硬盘故障导致数据丢失) 客户端同步时如果要排某个目录
rsync是unix系统下的数据镜像 备份工具,一般linux系统都 自带: # rpm -qa|grep rsync rsync-3.0.9-17.el7.x86_64 服务器端:10.100.0. ...
- FFmpeg(8)-打开音视频解码器,配置解码器上下文(avcodec_find_decoder()、avcodec_alloc_context3())
一.avcodec_find_decoder 获取解码器.在使用之前必须保证所用到的解码器已经注册,最简单的就是调用avcodec_register_all() 函数,就像之前注册解封装器的时候,也要 ...