正则表达式:专门用于字符串处理的语言,用来描述字符串特征的表达式

元字符

.

之间可以出现任意单个字符(除了\n 换行)

例如: a.b   意思是这个表达式必须是三个字符,第一个字符是a,第三个字符是b,中间是任意一个字符(中间字符也可以是空格)

[]

字符的筛选

例如: a[fgh]b 意思是这个表达式必须是三个字符,第一个字符是a,第三个字符是b,中间字符必须是f g h 中的一个字符

例如  a[0-9]b     第二个字符可以是 0到9之间的任意一个字符

例如 a[0-9a-zA-Z]b   第二个字符可以是 0到9或者a到z或者A-Z之间的任意一个字符

例如 a[^0-9a-z]b       第二个字符可以是除了0-9 a-z 以外的任意一个字符

|

表示或的意思

例如: z|food   意思是 这个表达式是z 或者 food (| 优先级最低)

例如:(z|f)ood 意思是 这个表达式是zood 或者 food

()

改变优先级,提取组

*

限定符,表示 * 前一个字符可以出现零次或者多次

例如: af*b   表示 f 可以不出现(ab)或者出现多次(afffffffb)

例如: a.*b   表示 ab间可以出现任何数字(asdgdffsgb)

+

限定符,表示 *号前一个字符至少出现一次

例如: a.+b    表示ab之间至少要出现一个字符(adfgsdfhsdfhb)

例如:a[0-9]b   表示 ab间至少有一个0-9的数字并且这个数字可以出现任意次(a0000b)

?

限定符,表示?前一个字符必须出现零次或者一次

例如: a.?b   这个字符串必须是ab 或者 a.b

?

另一个作用:终止贪婪模式。 正则表达式默认是贪婪模式

{}

两种

1、{n}  之前的一个字符必须出现n次

例如  a[0-9]{5}b   ab间的存在5个相同字符并且这5个字符必须是0到9之前的一个数 (a88888b)

2、{n,m} 之前的一个字符最少出现n次,最多出现m次

例如  a[0-9]{5,7}b         lue

3、{n,} 表示之前的一个字符至少出现n次,没有上限

^

必须是 xxx开头

例如 ^ab  表达式必须是ab开头 (ab454gag)

$

必须是 xxx结束

例如 xyz$ 表达式末尾必须是xyz(dhdfshxyz)

简写表达式

\d 等价于[0-9]    英文单词 digital(数字)

\D等价于[^0-9]

\s  表示所有不可见空白符 (包括中英文空格、回车、tab等)

例如: a\s*b  表示ab之间可以有任意空白或者只是ab两个字符

\S(大写) 表示除了\s(小写) 以外的所有字符

\w 匹配字母或数字或下划线或汉字 。   除了%&#@!$

\W

\b 单机的边界

@

如果一个字符串里出现带\的正则(如:\d)就需要在字符串前加个@,目的是让告诉.net编译器这个字符串里的\不是转义用的。

Regex 类

表示不可变的正则表达式。

using System.Text.RegularExpressions;

构造函数

Regex()    初始化 Regex 类的新实例

Regex(String)  新实例初始化 Regex 为指定的正则表达式类(传一个正则表达式进来)

还有三个暂时不用

方法 

Regex.Match(string) 传一个字符串进去  (返回一个Match对象)

Regex.Match(string,string)第一个穿需要判断的字符串,第二个传正则表达式(返回一个Match对象)

Regex.IsMatch(string,string) 返回一个布尔值用来判断是否匹配成功

            string p = "a.b";
string str="addb";
if (Regex.IsMatch(str, p))
{
Console.WriteLine("匹配成功"); }
else
{
Console.WriteLine("匹配不成功");
}
Console.ReadKey();
}

Match 类

表示单个正则表达式匹配的结果

 using System.Text.RegularExpressions;

属性

Length 获得字符串长度

            string p = "a.b";
string str="adb";
Match match = Regex.Match(str, p);
int a = match.Length;
Console.WriteLine(a);

Success  判断是否匹配成功

 string p = "a.b";
string str="addb";
Match match = Regex.Match(str, p);
if (match.Success)
{
Console.WriteLine("匹配成功"); }
else
{
Console.WriteLine("匹配不成功");
}
Console.ReadKey();

Value  获得字符串的值

            string p = "a.b";
string str="adb";
Match match = Regex.Match(str, p);
string a = match.Value;
Console.WriteLine(a);

(33)C#正则表达式的更多相关文章

  1. php电话号码正则表达式常用例子

    电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) 02   03 ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{ ...

  2. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  3. AS技巧合集「编码技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254725&extra=page%3D2%26filter%3Dautho ...

  4. 62个Android Studio小技巧合集

    1书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除书签 ...

  5. Android Studio 小技巧合集

    本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62 ...

  6. 最强 Android Studio 使用小技巧和快捷键总结

    最强 Android Studio 使用小技巧和快捷键总结   写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...

  7. 转:Andriod studio技巧合集

    1. 书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除 ...

  8. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  9. .net使用正则表达式校验、匹配字符工具类

    开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...

随机推荐

  1. iOS远程消息推送原理

    1. 什么是远程消息推送? APNs:Apple Push Notification server 苹果推送通知服务苹果的APNs允许设备和苹果的推送通知服务器保持连接,支持开发者推送消息给用户设备对 ...

  2. 《Cracking the Coding Interview》——第11章:排序和搜索——题目6

    2014-03-21 21:50 题目:给定一个MxN的二位数组,如果每一行每一列都是升序排列(不代表全展开成一个一维数组仍是升序排列的).请设计一个算法在其中查找元素. 解法:对于这么一个数组,有两 ...

  3. 《Cracking the Coding Interview》——第3章:栈和队列——题目1

    2014-03-18 03:19 题目:用一个数组实现3个栈. 解法: 首先我想过让三个栈动态决定长度.要么左右各一个向中间靠拢,要么三个穿插着,后来都觉得实现起来太复杂,而且思路总有各种功能缺陷,会 ...

  4. python学习笔记七:浅拷贝深拷贝

    原理 浅拷贝 import copy b = copy.copy(a) demo: >>> a=[1,['a']] >>> b=a >>> c=c ...

  5. 手动实现一个lazyMan

    这应该算一个经典的面试题了,就是一个关于流程控制的问题,要求如下 //实现一个LazyMan,可以按照以下方式调用: LazyMan("Hank")//输出: //Hi! This ...

  6. day06_08 字符串

    1.0 双引号和单引号的区别 a = "Let's go" print(a) #>>>Let's go 2.0 重复输出字符串* print('hello'*2) ...

  7. ocrosoft Contest1316 - 信奥编程之路~~~~~第三关 问题 P: 【数组】1234方阵(phalanx)

    http://acm.ocrosoft.com/problem.php?cid=1316&pid=15 题目描述 编程打印如下规律的n*n方阵.输入n,按规律输出方阵. 方阵规律如下图:使左对 ...

  8. 基于MAC OS 操作系统安装、配置hadoop

    在Mac上安装Hadoop 对我这个之前从未接触过*nix的用户来说,使用命令行来做一系列的事情还是废了一番功夫.特写这个记录,以做备份. 获取Java 我的Mac运行的操作系统是OS X 10.7 ...

  9. UVALive4374 Drive through MegaCity

    题目戳这里. 首先我们对坐标进行离散化,有用的点就变成了\(O(N)\)个.我们假设\(A\)点\(B\)的右边(从\(A\)往\(B\)跑和从\(B\)往\(A\)跑等价),然后我们很容易发现不会往 ...

  10. 262144 (game)

    262144 (game) 题目描述 Bessie likes downloading games to play on her cell phone, even though she does fi ...