Welcome

首页 / 软件开发 / C# / C#正则表达式整理备忘

C#正则表达式整理备忘2010-03-04有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了。现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘。

(1)“@”符号

符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:

string x="D:\My Huang\My Doc";

string y = @"D:My HuangMy Doc";

事实上,如果按如下声明,C#将会报错,因为“”在C#中用于实现转义,如“ ”换行:

string x = "D:My HuangMy Doc";

(2)基本的语法字符。

d 0-9的数字

D d的补集(以所以字符为全集,下同),即所有非数字的字符

w 单词字符,指大小写字母、0-9的数字、下划线

W w的补集

s 空白字符,包括换行符 、回车符 、制表符 、垂直制表符v、换页符f

S s的补集

. 除换行符 外的任意字符

[…] 匹配[]内所列出的所有字符

[^…] 匹配非[]内所列出的字符

下面提供一些简单的示例:

Code

string i = " ";
string m = "3";
Regex r = new Regex(@"D");
//同Regex r = new Regex("\D");
//r.IsMatch(i)结果:true
//r.IsMatch(m)结果:false
string i = "%";
string m = "3";
Regex r = new Regex("[a-z0-9]");
//匹配小写字母或数字字符
//r.IsMatch(i)结果:false
//r.IsMatch(m)结果:true

(3)定位字符

“定位字符”所代表的是一个虚的字符,它代表一个位置,你也可以直观地认为“定位字符”所代表的是某个字符与字符间的那个微小间隙。

^ 表示其后的字符必须位于字符串的开始处

$ 表示其前面的字符必须位于字符串的结束处

 匹配一个单词的边界

B 匹配一个非单词的边界