正则表达式学习中

 

匹配单个字符

1.匹配固定单个字符

2.匹配任意单个字符  .

3.匹配“.”元字符   \.  转义字符

4.匹配字符组

4.1 字符组的基本语法  语法是 “[dt]”。中括号是特殊标记,用以划定属于组内的字符的界限,它所代表的含义是:匹配d或者t”

4.2 在字符组中使用字符区间   起始字符 结束字符,依据的是它的 ASCⅡ值的大小,即是说,将会匹配其ASCⅡ码位于 起始字符 结束字符 ASCⅡ之间的所有字符(包含起始、结束字符)  “[0-9]”

4.3 反义字符组    [^字符集合]

5.匹配特殊字符

5.1 匹配元字符   需要使用“\”来对它进行转义

5.2 匹配空字符 

元字符

匹配描述

\r

回车

\n

换行

\t

Tab

5.3 匹配特定字符类型 

l  对于.[等来说,它们本身就是 元字符,而当给它们前面加上转义字符\的时候,它们才代表一个普通字符:\.匹配字符.\[匹配字符[。  

l  对于“r”“n”等来说,它们本身只是 普通字符,而只有当加上转义字符“\”的时候(变成了“\r”“\n”),它们才代表着元字符:“\r”匹配空字符回车,“\n”匹配空字符换行。

5.3.1 匹配数字类型

 

元字符

匹配描述

\d

所有单个数字,与 [0-9] 相同

\D

所有非数字,与 [^0-9] 相同

5.3.2 匹配字母、数字、下划线

 

元字符

匹配描述

\w

所有单个大小写字母、数字、下划线,与 [a-zA-Z0-9_] 相同

\W

所有单个非大小写字母、非数字、非下划线,与 [^a-zA-Z0-9_] 相同

5.3.3 匹配空字符 

元字符

匹配描述

\s

所有单个空字符,与 [\f\n\r\t\v] 相同

\S

所有单个非空字符,与 [^\f\n\r\t\v] 相同

 

匹配多个字符

1.     匹配一个或多个  正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(“.”) 后面加+,来表示匹配一个或多个(换言之,至少一个)字符组成的字符串。

“-”只在字符组“[]”区间内才是一个元字符,在“[]”以外是普通字符。在此处,“.”“[]”区间以外才是元字符,用以匹配任意单个字符,而在“[]”区间以内,它就变成了一个普通字符。

2.匹配零个或多个字符

正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(“.”) 后面加*,来表示匹配零个或多个字符组成的字符串。

3.匹配零个或一个字符串

正则表达式中,使用?来匹配零个或一个字符。其使用方式与“+”“*”相同。

4.匹配指定数目字符

4.1 匹配固定数目的字符

正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(“.”) 后面加“{数字}”,来表示匹配零个或多个字符组成的字符串。

4.2 匹配区间以内数目的字符

正则表达式中,使用“{最小数目,最大数目}”的语法来实现,它的使用方式与上一节介绍的匹配固定数目字符的语法相同。

5.贪婪匹配和惰性匹配

5.1 贪婪匹配、惰性匹配概述 

贪婪匹配

惰性匹配

匹配描述

?

??

匹配0个或1

+

+?

匹配1个或多个

*

*?

匹配0个或多个

{n}

{n}?

匹配n

{n,m}

{n,m}?

匹配n个或m

{n,}

{n,}?

匹配n个或多个

注意: 这里有个重要的搜索引擎优化常识,大家注意到本文档的命名,我采用的是:Regular-Expression-Tutorial.pdf,为什么不用下划线分隔,命名成Regular_Expression_Tutorial.pdf 呢? 因为当搜索引擎看到“-”的时候,会把它视为一个空格“ ”,而看到下划线“_”的时候,会把它视为空字符“”,实际上,下划线的正确叫法是连字符。于是,当我命名为Regular-Expression-Tutorial.pdf 时,搜索引擎看到的是: Regular Expression Tutorial.pdf,而当我命名成Regular_Expression_Tutorial.pdf 时,搜索引擎看作RegularExpressionTutorial.pdf
posted @ 2009-06-25 09:58  广陵散仙(www.cnblogs.com/junzhongxu/)  阅读(238)  评论(0编辑  收藏  举报