C#正则表达式

来源:互联网 发布:软件性能测试报告案例 编辑:程序博客网 时间:2024/06/04 19:02

(1)“@”符号

以下两个声明是等效的:

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

string y = @"D:\My Huang\My Doc";

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

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

(2)基本的语法字符。

\d  0-9的数字

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

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

\W  \w的补集

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

\S  \s的补集

.  除换行符\n外的任意字符

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

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

(3)定位字符

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

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

\b  匹配一个单词的边界

\B  匹配一个非单词的边界

另外,还包括:\A  前面的字符必须位于字符处的开始处,\z  前面的字符必须位于字符串的结束处,\Z  前面的字符必须位于字符串的结束处,或者位于换行符前

(4)重复描述字符

{n}  匹配前面的字符n次

{n,}  匹配前面的字符n次或多于n次

{n,m}  匹配前面的字符n到m次

?  匹配前面的字符0或1次

+  匹配前面的字符1次或多于1次

*  匹配前面的字符0次或式于0次

(5)择一匹配

C#正则表达式中的 (|) 符号似乎没有一个专门的称谓,姑且称之为“择一匹配”吧。事实上,像[a-z]也是一种择一匹配,只不过它只能匹配单个字符,而(|)则提供了更大的范围,(ab|xy)表示匹配ab或匹配xy。注意“|”与“()”在此是一个整体。

(6)特殊字符的匹配

(7)组与非捕获组


实例:

  1、//匹配小数位数最多为3位的正实数

     

   string strNEXFPRICE = dt.Rows[i]["出厂价"].ToString().Trim();   string regText = "^[0-9]+(.[0-9]{1,3})?$";   Regex reg = new Regex(regText);   bool blMatch = reg.IsMatch(strNEXFPRICE);


2、匹配日期格式:2013-02-08

string strDate = @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";

详细资料参考:http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html

原创粉丝点击