DotNet小人物
☞ 即便你的方向正确,如果你只是站在那里的话,你也不会有任何收获。

开个头吧:

最近正在看ASP.NET 3.5 高级程序设计,看到验证控件之——RegularExpressionValidator,里面讲到正则表达式的语法结构及常用的正则表达式感觉很不错。

所以就想将所述内容记下来,一来加深一下自已的了解,二来希望能对想了解或想学习正则表达式的有一点帮助。

正则表达式是一个强大的工具,它对我们处理很多复杂的字符有很大的作用。利用它我们很容易的解决一些复杂的字符匹配、字符过滤、字符校验等功能。

好了,下面就去了解一下它吧!

 

单字符匹配的元字符

                          转义字符                                                     描述

                          普通字符                                                      除了.$^{[(|)*+?\, 字符都和自身相匹配

                           \b                                                             对应空格

                           \t                                                              对应TAB

                           \r                                                              对应回车

                           \v                                                              对应垂直TAB

                           \f                                                               对应表单回馈

                           \n                                                              对应新的行

                           \                                                                如果跟在后面的特殊字符是.$^{[(|)*+?\ 中的某一个,转义字符照字面转义这个字符。如\+对应+字符

 

些外,对于单个字符,可以在表达式中指定一个可匹配的类或一个可匹配的字符区间。例如,可以允计任何数字或任何元音字母在任何位置,但是不凶括其他字符。以下元字符实现了这个目的...

 

对应字符类型的元字符

                        字符类                                                        描述

                        .                                                               对应任何字符,除了\n

                        [abcde]                                                     对应集合中的描述的一个字符

                        [^abcde]                                                   对应不在集合中的任何一个字符

                        [3-7a-dA-D]                                              对应描述范围中的一个字符(这个例子中范围是3-7,a-d,A-D)

                        \w                                                            对应任何单词,也就是说,任何文字数字字符或下划线(_)

                        \W                                                           对应任何非单词的字符

                        \s                                                            对应任何白色空间(空格,TAB,换页,新行,回车,或vertical feed)

                        \S                                                            对应任何非白色空间

                        \d                                                            对应任何十进制字符

                        \D                                                           对应任何非十进制字符

 

 

使用更高级的语法,可以指定某个字符或字符类必须出现至少一次,或2-8次等。这些量词放在字符或字符区间的后面,允许你指定在量词前面的字符必须出现的次数 如下:

 

量词

                     量词                                                             描述

                     *                                                                 大于等于零次匹配

                     +                                                                 大于等于一次匹配

                     ?                                                                零次或一次匹配

                    {N}                                                              N次匹配

                    {N,}                                                            大于等于N次匹配

                    {N,M}                                                           N到M次匹配      

 

 

用一个简单的例子来展说明一个这些规则:

[aeiou]{2,4}\+[1-5]

功能:这个表达式的字符串必须以2~4个元音开始,有一个+号,有一个+号,以零或者更多的数字(在1~5之间)结束。

 

结束语:最后在这里给出常用的正则表达式,希望有所帮助...

 

常用的正则表达式

 内容                                 正则表达式                                         描述

E-Mail地址                          \S+@\S+\.\S+                                 定义需要@和并只允许非空格字符的E-mail地址

密码                                   \w+                                                任何有序字符(包括字母、空格和下划线)

特定长度的密码                    \w{4,10}                                         定义密码:必须至少4位字符但不超过10个字符

高级密码                            [a-zA-Z]\w{3,9}                              允许4~10个字符,第一个字符必须在a~z或A~Z的范围(也就是说,必须以一非重音的普通字母开始)

另一高级密码                      [a-zA-Z]\w*\d+\w*                          密码包含一些数字在里面,可以使用相似的式样要求两个数字或其他特性

有限长度的字段                   \S{4,10}                                         允许4~10个字符,但是也允许一些特殊的字符(如“*”、“””&” 等)

社会保险号(英)                \d{3}-\d{2}-\d{4}                          三,二,然后四个数字的顺序,用破折号分隔各个小组。当要求电话号码时,可以使用类似的模式         

国内电话号码                     \d{3}-\d{8}|\d{4}-\d{7}

匹配网址URL                     [a-zA-z]+://[^\s]*

匹配中国邮政编码               [1-9]\d{5}(?!\d)

匹配身份证                       \d{15}|\d{18}

匹配ip地址                       \d+\.\d+\.\d+\.\d+

匹配中文字符                    [\u4e00-\u9fa5] 

posted on 2009-06-28 17:09  Net小人物  阅读(309)  评论(0)    收藏  举报