C#正则表达式参考
正则表达式的用途非常广泛,基本上任何一门编程语言都用用到正则表达式。C#语言中的正则表达式跟微软一直以来使用的正则表达式基本相同。本文用作快速参考。
1、正则表达式的基本字符
\d 0-9的数字
\D \d的补集(以所以字符为全集,下同),即所有非数字的字符
\w 单词字符,指大小写字母、0-9的数字、下划线
\W \w的补集
\s 空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f
\S \s的补集
. 除换行符\n外的任意字符
2、用于定位的字符
所谓“定位字符”,就是用来确定一个位置,比如字符串开始处、结尾处、单词边界等。
^ 表示其后面的字符必须位于被匹配字符串的开始处
$ 表示其前面的字符必须位于被匹配字符串的结束处
\b 匹配一个单词的边界
\B 匹配一个非单词的边界
\A 前面的字符必须位于字符处的开始处
\z 前面的字符必须位于字符串的结束处
\Z 前面的字符必须位于字符串的结束处,或者位于换行符前
3、中括号匹配一个范围
[…] 匹配[]内所列出的所有字符
[^…] 匹配非[]内所列出的字符
4、重复字符
将前面的字符或字符串重复,具体如下:
{n} 匹配前面的字符n次
{n,} 匹配前面的字符n次或多于n次
{n,m} 匹配前面的字符n到m次
? 匹配前面的字符0或1次
+ 匹配前面的字符1次或多于1次
* 匹配前面的字符0次或式于0次
5、多选一匹配
C#正则表达式中使用小括号和竖线实现多个中选择一个的匹配方式 (|) ,如(12|ab|AB)表示匹配12或匹配ab或匹配AB。注意“|”与“()”此时是一个整体。
6、贪婪与非贪婪
在重复字符后面使用一个问号(?)可以让正则匹配处于“非贪婪模式”。默认情况下,正则匹配为“贪婪模式”。
7、回溯与非回溯
因为正则表达存在贪婪的问题,所以系统同时也赋予了它回溯的能力。当因为贪婪而匹配过头之后,还可以通过回溯再把前面的内容匹配出来。可以使用(?>贪婪内容)来禁止系统进行回溯。
要饭二维码
