正则表达式入门(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();
}
输出结果: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();
}
检测关键字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");
...
输出结果16
算是占位符,匹配电话号码啥的。代码后面都一样就省略掉。
\d是匹配数字
4.{count}
string str = "the xxxx, xxxx, 021-88888888";
Regex rex = new Regex(@"0\d{2}-\d{8}");
...
输出结果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();
}
输出结果为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();
}
输出结果为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();
匹配成功,返回0:
string str = "";
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();
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();
}
{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();
正则表达式入门(c#)的更多相关文章
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- 分享录制的正则表达式入门、高阶以及使用 .NET 实现网络爬虫视频教程
我发布的「正则表达式入门以及高阶教程」,欢迎学习. 课程简介 正则表达式是软件开发必须掌握的一门语言,掌握后才能很好地理解到它的威力: 课程采用概念和实验操作 4/6 分隔,帮助大家理解概念后再使用大 ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- 转载 Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 转载 Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写.转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式 ...
- php正则表达式入门-常用语法格式
php正则表达式入门-常用语法格式 原文地址:http://www.jbxue.com/article/24467.html 分享下php正则表达式中的一些常用语法格式,用于匹配字母.数字等,个人感觉 ...
- 正则表达式入门之学习路线&七个问题
由于工作需求,需要使用正则表达式查找满足某种模式的字符串,但因为之前都没有接触过相关内容,最开始的时候看了一些已经被别人写好了的正则表达式,本来打算可能可以直接使用: 最全的常用正则表达式大全——包括 ...
- python正则表达式入门篇
文章来源于:https://www.cnblogs.com/chuxiuhong/p/5885073.html Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. ...
- Java正则表达式入门基础篇
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为 ...
随机推荐
- Cocos2d-x 3.0多线程异步资源载入代码
// AppDelegate.cpp bool AppDelegate::applicationDidFinishLaunching() { - - FlashScene* scene = Flash ...
- Drupal Working with nodes, content types and fields
一个大概的总结,便于对接下来的学习进行理解和运行 在使用Drupal过程中.站点中的内容的不论什么一个部分都是一个节点(node),而每一个节点中又包括了一些默认的字段(fields). 值得说明的是 ...
- TQ2440之定时器中断0——volatile关键字的重要作用
近日,在学习<ARM处理器裸机开发实战--机制而非策略>一书,在TQ2440开发板上,按照书中实例以及光盘配套程序源代码进行Timer0中断试验,编译成功后烧写到开发板上,没有任何反应,反 ...
- ios的坑 无痕模式
我们的一个小应用,用localStorage做了下缓存,测试上线之后有反馈页面数据拉取不到, 最后定位到是localStorage有问题. 是Private Browsing Mode引起的.然后查看 ...
- linux - 文件夹、文件默认属性: umask使用
一 权限掩码umask umask是chmod配套的.总共为4位(gid/uid,属主.组权,其他用户的权限),只是通经常使用到的是后3个.比如你用chmod 755 file(此时这文件的权限是属主 ...
- plsql 常用快捷键(自动替换)
plsql 常用快捷键 CreateTime--2018年4月23日17:33:05 Author:Marydon 说明:这里的快捷键,不同于以往的快捷键,输入指定字符,按快捷键,可以自动替换成你 ...
- 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义http请求
初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因一是LR本身存在对测试环境的兼容性问题导致录制失败,更深层次的原因是录制者不清楚LR录制脚本的原理,或 ...
- (CF#257)B. Jzzhu and Sequences
Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, ple ...
- springmvc多视图配置
http://blog.csdn.net/yaerfeng/article/details/23593755
- LinkedHashMap插入无序且链式操作
Iterator<Entry<Integer, Integer>> ite=lhmap.entrySet().iterator(); ite.next(); ite.remov ...