.net正则表达式快速入门讲义.doc
文本预览下载声明
C#正则表达式快速入门
[介绍]
????作者将自己在学习正则表达式中的心得和笔记作了个总结性文章,希望对初学C#正则表达式的读者有帮助。?
[内容]
什么是正则表达式
涉及的基本的类
正则表达式基础知识
构建表达式基本方法
编写一个检验程序
参考资料
[正文]
????对于初学者看到类似“\w+@\w+\.\w{1,3}”这样复杂没有规律的字符,就会莫名产生一种恐惧感。其实正则表达式和字符串(String)的使用同样非常简单。下面让我们逐步地走进正则表达式的世界!
什么是正则表达式
????正则表达式是用来检验和操作字符串的强大工具。简单的理解正则表达式可以认为是一种特殊的验证字符串。正则表达式常见运用是验证用户输入信息格式,比如上面的那组“\w{1,}@\w{1,}\.\w{1”,实际上就是验证邮件地址是否合法的;当然正则表达式不仅仅是用于验证,可以说只要运用字符串的地方都可以使用正则表达式;
涉及的基本的类
????正则表达式在英文中写作(Regular Expression),根据正则表达式的使用范围和单词意思,.NET将其命名空间设置为System.Text.RegularExpressions;
????在该命名空间内包括了8个基本的类:Capture、CaptureCollection、Group、GroupCollection、Match、MatchCollection、Regex和RegexCompilationInfo如图1所示;
图1 MSDN Library中正则表达式命名空间Capture用于单个表达式捕获结果CaptureCollection用于一个序列进行字符串捕获Group表示单个捕获的结果GroupCollection表示捕获组的集会Match表示匹配单个正则表达式结果MatchCollection表示通过迭代方式应用正则表达式到字符串中Regex表示不可变的正则表达式RegexCompilationInfo将编译正则表达式需要提供信息[注意]????本文属于初学正则表达式的入门文章,对于高级的分组(Group)及其涉及语法等在这里不做介绍;
正则表达式基础知识
基本语法
????在正则表达式中拥有一套自己的语法规则,常见语法包括;字符匹配、重复匹配、字符定位、转义匹配和其他高级语法(字符分组、字符替换和字符决策);
????字符匹配语法:
字符语法语法解释语法例子\d匹配数字(0~9)‘\d’匹配8,不匹配12;\D匹配非数字‘\D’匹配c,不匹配3;\w匹配任意单字符‘\w\w’ 匹配A3,不匹配@3;\W匹配非单字符‘\W’匹配@,不匹配c;\s匹配空白字符‘\d\s\d’匹配3 d,不匹配abc;\S匹配非空字符‘\S\S\S’匹配A#4,不匹配3 d;.匹配任意字符‘....’匹配A$ 5,不匹配换行;[…]匹配括号中任意字符[b-d]匹配b、c、d, 不匹配e;[^…]匹配非括号字符[^b-z]匹配a,不匹配b-z的字符;????重复匹配语法:
重复语法语法解释语法例子{n}匹配n次字符\d{3}匹配\d\d\d,不匹配\d\d或\d\d\d\d{n,}匹配n次和n次以上\w{2}匹配\w\w和\w\w\w以上,不匹配\w{n,m}匹配n次上m次下\s{1,3}匹配\s,\s\s,\s\s\s,不匹配\s\s\s\s?匹配0或1次5?匹配5或0,不匹配非5和0+匹配一次或多次\S+匹配一个以上\S,不匹配非一个以上\S*匹配0次以上\W*匹配0以上\W,不匹配非N*\W
????字符定位语法:
重复语法语法解释语法例子^定位后面模式开始位置?$前面模式位于字符串末端?\A前面模式开始位置?\z前面模式结束位置?\Z前面模式结束位置(换行前)?\b匹配一个单词边界?\B匹配一个非单词边界?
????转义匹配语法:
转义语法涉及字符(语法解释)语法例子“\”+实际字符\ . * + ? | ( ) { }^ $ 例如:\\匹配字符“\”\n匹配换行?\r匹配回车?\t匹配水平制表符?\v匹配垂直制表符?\f匹配换页?\nnn匹配一个8进制ASCII?\xnn匹配一个16进制ASCII?\unnnn匹配4个16进制的Uniode? \c+大写字母匹配Ct
显示全部