正则表达式入门(c#)
本文是对该教程的学习练习
http://www.jb51.net/tools/zhengze.html
注:正则符号转义和普通的转义一样,加反斜杠,比如[ 变成 \[
正则表达式符号和转义符号最好用+号连起来。
关于在vs里用正则表达式替换需要分组,其实很简单用括号括起来就算一个组了
匹配到的数据都在Groups里面,C#提供了匹配,替换等功能,具体msdn
1.\bContent\b
static void Main(string[] args) {string str = "Act game - Uncharted3, act Game - God of war";Regex rex = new Regex(@"\bact\b");var result = rex.Match(str);if (result.Success){var tmp = result.Index;Console.WriteLine(tmp);}else{Console.WriteLine("failure");}Console.Read(); }
View Code
输出结果:23。
第一个act,a是大写。没做大小写匹配,所以正则匹配到的是索引23的那个act.
前面的\b是匹配开始处,后面的是匹配结束处。开始处和结束处指空格
比如只匹配开始处就是\bContent
2.\bContent1\b.*\bContent2\b
static void Main(string[] args) {string str = "rpg game - Legend of Heroes, act game - Uncharted3, act Game - God of war";Regex rex = new Regex(@"\bact\b.*\bUncharted3\b");var result = rex.Match(str);if (result.Success){var tmp = result.Index;Console.WriteLine(tmp);}else{Console.WriteLine("failure");}Console.Read(); }
View Code
检测关键字1后面是否跟着关键字2
输出结果:29。
但是遇到多个和前缀相同的字串,就会出问题。
如果不是查找单词,可以去掉\b。Content1.*Content2
3.0\d\d-\d\d\d\d\d\d\d\d
string str = "the xxxx, xxxx, 021-88888888"; Regex rex = new Regex(@"0\d\d-\d\d\d\d\d\d\d\d"); ...
View Code
输出结果16
算是占位符,匹配电话号码啥的。代码后面都一样就省略掉。
\d是匹配数字
4.{count}
string str = "the xxxx, xxxx, 021-88888888"; Regex rex = new Regex(@"0\d{2}-\d{8}"); ...
View Code
输出结果16
上面那种写法的优化版。
5.{min,max}
\d是数字,\d{x}是匹配长度为x的数字,\d{x1,x2}是匹配长度最小为x1,最大为x2的数字
static void Main(string[] args){string str = "Act game - Uncharted3, act Game - God of war qwe 123456 asd";Regex rex = new Regex(@"\d{5,12}");var result = rex.Match(str);if (result.Success){var tmp = result.Index;Console.WriteLine(tmp);}else{Console.WriteLine("failure");}Console.Read();}
View Code
输出结果为50
6.\s和\w
\s是匹配空格,花括号内容同上
static void Main(string[] args){string str = "Act game - Uncharted3, act Game - God of war qwe asd";Regex rex = new Regex(@"\s{5,12}");var result = rex.Match(str);if (result.Success){var tmp = result.Index;Console.WriteLine(tmp);}else{Console.WriteLine("failure");}Console.Read();}
View Code
输出结果为48
\w是匹配字母或数字或下划线或汉字。和\s差不多,不做示范了。
7.^和$
用于匹配整个字符串,通常注册帐号的时候,非常有用
失败,因为是整串匹配:
string str = "QQ: 123456"; Regex rex = new Regex(@"^\d{5,12}$"); var result = rex.Match(str); if (result.Success) {var tmp = result.Index;Console.WriteLine(tmp); } else {Console.WriteLine("failure"); } Console.Read();
View Code
匹配成功,返回0:
string str = "123456"; Regex rex = new Regex(@"^\d{5,12}$"); var result = rex.Match(str); if (result.Success) {var tmp = result.Index;Console.WriteLine(tmp); } else {Console.WriteLine("failure"); } Console.Read();
View Code
8. * + ? {n,}
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n,} 重复n次或更多次
*和?测试的时候返回的总是0。暂时先搁一边
+,测试正常,返回4
static void Main(string[] args){string str = "QQ: 111a";Regex rex = new Regex(@"\d+\w");var result = rex.Match(str);if (result.Success){var tmp = result.Index;Console.WriteLine(tmp);}else{Console.WriteLine("failure");}Console.Read();}
View Code
{n,} 这里设置数字重复2次或者更多,返回值为4
string str = "QQ: 111a"; Regex rex = new Regex(@"\d{2,}\w"); var result = rex.Match(str); if (result.Success) {var tmp = result.Index;Console.WriteLine(tmp); } else {Console.WriteLine("failure"); } Console.Read();
View Code
转载于:https://www.cnblogs.com/hont/p/3789591.html
正则表达式入门(c#)相关推荐
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- 正则表达式入门之字符匹配
正则表达式入门-字符匹配 在前段时间进行文本挖掘练习的时候,不会使用正则表达式,深感不宜.所以这里,我想赶紧学习一下正则表达式. 注:本文是对<正则表达式必知必会>的复习. 1.正则表达式 ...
- 绿色版的正则表达式测试工具及正则表达式入门教程
下载网址:https://download.csdn.net/download/xyz846/10856604 RegexTester是一款正则表达式测试器,支持单行模式.多行模式,经典的窗口设计,该 ...
- 正则表达式入门-findall()函数
正则表达式入门-findall()函数 findall()函数 例子 import re a = '123abc' re=re.findall('\d\d\d',a) print(re) 导入用于完成 ...
- 正则表达式发明者_【D1n910】正则表达式入门(三)
正常操作,正常分析,大家好,我是D1n910. 最近又发生了一些很严重的事情,祥林嫂是可怜的,可是因为又祥林嫂的存在,让一些人可能不愿意向别人倾诉自己"悲惨"的经历了. 正则表达式 ...
- 【python学习】正则表达式入门
python正则表达式入门学习 前言 今天进入python正则表达式的入门学习 学习正则表达式的初衷还是为了awd比赛做准备 (好吧,其实学习python都是为了ctf啊) 学习的目的就是为了可以提取 ...
- 正则表达式入门与进阶
文章目录 正则表达式入门部分 一.字符组 二.区间 三.特殊字符转义符 四.字符组取反 五.快捷方式 5.1 匹配单词字符.数字 5.2 匹配空白 5.3 匹配单词边界 5.4.快捷方式取反 5.5. ...
- Python 正则表达式入门(初级篇)
唯心不易(转载) https://www.cnblogs.com/chuxiuhong/p/5885073.html Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门 ...
- 推荐 正则表达式入门教程
看到编写比较好而且学习时间比较短的教程,很不错哦.推荐给大家学习. 正则表达式30分钟入门教程 转载于:https://blog.51cto.com/bearstudyhard/299713
- 【Python基础】Python正则表达式入门到入魔
关于正则表达式,很多人认为,使用的时候查询下就可以,没必要深入学习,但是知识与应用永远都是螺旋辩证的关系,有需要查询也无可厚非,但是先掌握知识,可以让应用更创新,更深入,超越他人,必须要先掌握大量的深 ...
最新文章
- ASP.NET实现数据图表
- 爱上MVC3系列~分部视图中的POST
- 【Android】SlidingMenu属性详解
- java继承构造_Java语言的继承结构
- 在并发中练习 Boost.Multiprecision多线程环境相关的测试程序
- recovery编译问题汇总
- pkuseg-python的postag.zip在不能联网的服务器上的解决办法
- 转:libev和libevent的设计差异
- Redis数据库实现原理(划重点)
- SQL Server 2005 如何自动备份数据库
- Omni Recover适用于哪些IOS数据恢复方案?
- 关于 FROM tableA,tableB 和 tableA LEFT JOIN tableB on 的区别
- php注册页面 邮件回复,PHP发送邮件确认验证注册功能示例【修改别人邮件类】...
- 2022-数字媒体技术是什么?学什么?身为普通本科生的我们该怎么学?
- linux版qq怎么传文件,QQ for linux终于能在线传送文件了~
- vue-awesome-swiper滑动失效的问题解决方案
- SCI Translate 11安装教程
- 如何查找国内各大学本科学位论文?
- 数影周报:SpaceX设计图纸被泄露,拍明芯城正式在纳斯达克上市
- javaweb—web环境搭建
热门文章
- java quartz实例_一个非常简单的quartz例子
- linux下大文件裁剪,Linux系统裁剪(2)之Linux系统裁剪
- linux处理除零异常,linux – 如何在x86程序集中使用中断来触发被零除错误异常?...
- 计算机对身体有哪些危害,经常玩电脑的危害 经常玩电脑对身体有哪些伤害
- datetime 索引_超全的数据库建表/SQL/索引规范,适合贴在工位上!
- ajax同步、异步区别及应用
- CMU和谷歌联手放出XL号Transformer!提速1800倍 | 代码+预训练模型+超参数
- 计算机科学家论文引用排名:LeCun终于晋身三巨头
- 想让照片里的美女“回头”?清华MIT谷歌用AI帮你实现了
- 2018年AI如何发展?普华永道做出了8点预测 | 报告下载