本文是对该教程的学习练习

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#)相关推荐

  1. JavaScript正则表达式详解(一)正则表达式入门

    JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...

  2. 正则表达式入门之字符匹配

    正则表达式入门-字符匹配 在前段时间进行文本挖掘练习的时候,不会使用正则表达式,深感不宜.所以这里,我想赶紧学习一下正则表达式. 注:本文是对<正则表达式必知必会>的复习. 1.正则表达式 ...

  3. 绿色版的正则表达式测试工具及正则表达式入门教程

    下载网址:https://download.csdn.net/download/xyz846/10856604 RegexTester是一款正则表达式测试器,支持单行模式.多行模式,经典的窗口设计,该 ...

  4. 正则表达式入门-findall()函数

    正则表达式入门-findall()函数 findall()函数 例子 import re a = '123abc' re=re.findall('\d\d\d',a) print(re) 导入用于完成 ...

  5. 正则表达式发明者_【D1n910】正则表达式入门(三)

    正常操作,正常分析,大家好,我是D1n910. 最近又发生了一些很严重的事情,祥林嫂是可怜的,可是因为又祥林嫂的存在,让一些人可能不愿意向别人倾诉自己"悲惨"的经历了. 正则表达式 ...

  6. 【python学习】正则表达式入门

    python正则表达式入门学习 前言 今天进入python正则表达式的入门学习 学习正则表达式的初衷还是为了awd比赛做准备 (好吧,其实学习python都是为了ctf啊) 学习的目的就是为了可以提取 ...

  7. 正则表达式入门与进阶

    文章目录 正则表达式入门部分 一.字符组 二.区间 三.特殊字符转义符 四.字符组取反 五.快捷方式 5.1 匹配单词字符.数字 5.2 匹配空白 5.3 匹配单词边界 5.4.快捷方式取反 5.5. ...

  8. Python 正则表达式入门(初级篇)

    唯心不易(转载) https://www.cnblogs.com/chuxiuhong/p/5885073.html Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门 ...

  9. 推荐 正则表达式入门教程

    看到编写比较好而且学习时间比较短的教程,很不错哦.推荐给大家学习. 正则表达式30分钟入门教程 转载于:https://blog.51cto.com/bearstudyhard/299713

  10. 【Python基础】Python正则表达式入门到入魔

    关于正则表达式,很多人认为,使用的时候查询下就可以,没必要深入学习,但是知识与应用永远都是螺旋辩证的关系,有需要查询也无可厚非,但是先掌握知识,可以让应用更创新,更深入,超越他人,必须要先掌握大量的深 ...

最新文章

  1. ASP.NET实现数据图表
  2. 爱上MVC3系列~分部视图中的POST
  3. 【Android】SlidingMenu属性详解
  4. java继承构造_Java语言的继承结构
  5. 在并发中练习 Boost.Multiprecision多线程环境相关的测试程序
  6. recovery编译问题汇总
  7. pkuseg-python的postag.zip在不能联网的服务器上的解决办法
  8. 转:libev和libevent的设计差异
  9. Redis数据库实现原理(划重点)
  10. SQL Server 2005 如何自动备份数据库
  11. Omni Recover适用于哪些IOS数据恢复方案?
  12. 关于 FROM tableA,tableB 和 tableA LEFT JOIN tableB on 的区别
  13. php注册页面 邮件回复,PHP发送邮件确认验证注册功能示例【修改别人邮件类】...
  14. 2022-数字媒体技术是什么?学什么?身为普通本科生的我们该怎么学?
  15. linux版qq怎么传文件,QQ for linux终于能在线传送文件了~
  16. vue-awesome-swiper滑动失效的问题解决方案
  17. SCI Translate 11安装教程
  18. 如何查找国内各大学本科学位论文?
  19. 数影周报:SpaceX设计图纸被泄露,拍明芯城正式在纳斯达克上市
  20. javaweb—web环境搭建

热门文章

  1. java quartz实例_一个非常简单的quartz例子
  2. linux下大文件裁剪,Linux系统裁剪(2)之Linux系统裁剪
  3. linux处理除零异常,linux – 如何在x86程序集中使用中断来触发被零除错误异常?...
  4. 计算机对身体有哪些危害,经常玩电脑的危害 经常玩电脑对身体有哪些伤害
  5. datetime 索引_超全的数据库建表/SQL/索引规范,适合贴在工位上!
  6. ajax同步、异步区别及应用
  7. CMU和谷歌联手放出XL号Transformer!提速1800倍 | 代码+预训练模型+超参数
  8. 计算机科学家论文引用排名:LeCun终于晋身三巨头
  9. 想让照片里的美女“回头”?清华MIT谷歌用AI帮你实现了
  10. 2018年AI如何发展?普华永道做出了8点预测 | 报告下载