欢迎大家访问我的BLOG,我会多多的出原创文章,希望大家支持我,为我祈祷,让我实现我的三个梦想!再30岁能成为一个名优秀的软件架构师!

【正则[规则]表达式学习心得】3、悟透字符类

一、字符类:是规则表达式用来表示字符的语法,一般是把直接量放在[]中括号中来表示,例如:[1a79abcd\b\x62\142hj]   

    字符类又分为以下几种类型:   

     1、简单类     

       例如,要匹配a、b、c,字符类应该是[abc],这个称之为简单类(simple class),因为它确切地指定了要查找的那些字符。   

        如:[ab2\b\x62\142]     

    2、负向类     

       有时候,除了特定的一些,您可能会想要匹配所有的字符。这种情况下,可以使用负向类(negation class),它可以指定要排除的字符,

       例如,要匹配除了a和b的所有字符,那么这个字符类就是[^ab]。脱字符号(^)告诉正则表达式字符不能匹配后面跟着的字符。    如:[^abc]   

    3、范围类        

       到现在为止,字符类仍然要求输入所有的包含或者排除的字符。假设要匹配所有的字母表中的字符,但是又实在不想逐个输入,这时,可以使用范围类(range class)指定从a到z之间的范围[a-z]。这里最关键的地方是那条横线(-),它在这里应该看作是“从什么到什么”而不是减号。   

      注意:[a-z]仅仅匹配了小写字母,除非正则表达式使用i选项来指明是不区分大小写的,如果仅仅要匹配大写字母,请使用[A-Z],另外需要   遵循字符编码的顺序来匹配。  

     如:[1-4]、[\u0030-\u0039] 等遵循字符编码的顺序来匹配的   

 4、组合类   

    组合类(combination class)是由几种其它的类组合而成的字符类,   

    例如假设要匹配所有从a~m的字母以及从1~4的数字,以及一个换行符,那么所用到的类应该这样:[a-m1-4\n]

 5、预定义类   

    最后的:因为自己用语法来写字符类往往要写很多代码,而一些使用频率比较高的字符类,js引擎就事先定义好了,采用的形式如:\d等的转义序列。    

    由于某些模式会反复用到,所有可以使用一组预定义字符类以让我们更方便地指定复杂类。   

   全部如下:  

   . = [^\n\r] 除了换行和回车的任意字符  

    \d = [0-9]  数字  

   \D = [^0-9] 非数字字符  

   \s = [ \t\n\x0B\f\r] 空白字符  

   \S = [^ \t\n\x0B\f\r] 非空白字符  

   \w = [a-zA-Z_0-9] 单词字符(所有的字母、所有的数字、下划线)  

   \W = [^a-zA-Z_0-9] 非单词字符

总共七个  

posted on 2013-01-08 21:17  程序缘  阅读(179)  评论(1编辑  收藏  举报

导航