文档介绍:: .
(1)符号符下两OWS表研究室的火热,当晨在“@虽然并非C#正则表达式的成员”,但是它经常: .
(1)符号符下两OWS表研究室的火热,当晨在“@虽然并非C#正则表达式的成员”,但是它经常与C#正则表达式出双入对。“@表示,跟在它后面的字符串是个逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:
stringx="D:\\MyHuangWMyDoc";stringy=@"D:\MyHuang\MyDoc";事实上,如果按如下声明,C#将会报错,因为“”在C#中用于实现转义,如“n”换行:
stringx="D:\MyHuang\MyDoc";
(2)基本的语法字符。
\d0-9的数字\D\d的补集(以所以字符为全集,下同),即所有非数字的字符\w单词字符,指大小写字母、0-9的数字、下划线\W\w的补集\s空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f\S\\n外的任意字符[…]匹配[]内所列出的所有字符F…]匹配非[]内所列出的字符下面提供一些简单的示例:
0E1Code
(3)定位字符
定位字符”
定位字符”所代表的是一个虚的字符,它代表一个位置,你也可以直观地认为所代表的是某个字符与字符间的那个微小间隙。
A表示其后的字符必须位于字符串的开始处$表示其前面的字符必须位于字符串的结束处\b匹配一个单词的边界\B匹配一个非单词的边界另外,还包括:\A前面的字符必须位于字符处的开始处,\z前面的字符必须位于字符串的结束处,\Z前面的字符必须位于字符串的结束处,或者位于换行符前下面提供一些简单的示例:
0日Code
(4)重复描述字符
重复描述字符”是体现C#正则表达式很好很强大”的地方之{n}匹配前面的字符n次{n,}匹配前面的字符n次或多于n次{n,m}匹配前面的字符n到m次?匹配前面的字符0或1次+匹配前面的字符1次或多于1次*匹配前面的字符0次或式于0次以下提供一些简单的示例:
03Code
(5)择一匹配C#正则表达式中的(|)符号似乎没有一个专门的称谓,姑且称之为择一匹配”吧。事实上,像[a-z]也是一种择一匹配,只不过它只能匹配单个字符,而(|)则提供了更大的范围,(ab|xy)表示匹配ab或匹配xy。注意“与“()在此是一个整体。下面提供一些简单的示例:
田日Code
(6)特殊字符的匹配F面提供一些简单的示例:
国日Code
(7)组与非捕获组以下提供一些简单的示例:
0日Code
(8)贪婪与非贪婪正则表达式的引擎是贪婪,只要模式允许,它将匹配尽可能多的字符。通过在重复描述字符”(*,+)后面添加“?;可以将匹配模式改成非贪婪。请看以下示例:
03Code
(9)回溯与非回溯使用“(?>•••)'方式进行非回溯声明。由于正则表达式引擎的贪婪特性,导致它在某些情况下,将进行回溯以获得匹配,请看下面的示例:
0E1Code
(10)正向预搜索、反