正则表达式的复习

一个正则表达式主要由以下几部分组成的:原子,元字符,定界符,模式修正符号

如:”/\<img\s*src=\".*?\"\/\>/iu”

原子: ims \s

元字符:* ?

模式修正符号: i u

定界符号:/ /

 

注意:

①     定界符:除了字母,数字和正斜线\以外的任何字符都可以是定界符号,如# #,| |,{ }等

②     元字符:是一种特殊的字符,是用来修饰原子用到,不可以单独出现

+:表示重复匹配其前面的原子一次或多次

?:表示重复匹配其前面的原子0次或一次

*:表示重复匹配其前面的原子0次或多次

{}:可以自定义前面原子出现的次数:

{n}表示重复匹配其前面的原子n次

{n,m}表示重复匹配其前面的原子n到m次,包括n和m

{n,}表示重复匹配其前面的原子n次或无限次

. :匹配除换行符以外的任意字符

^:匹配字符串的开始

$:匹配字符处的结束

|:表示或的关系,它的优先级别是最低的,最后考虑他的功能

\b:匹配单词的分解处,单词是由空格,标点符号或者换行符来分隔的

\B:匹配不是单词开头或结束的位置,如:/\Bone\b/ 表示one的左边不是边界,one的右边是单词边界(如空格,标点符号或换行符)

():重点

       一:作为大原子使用:如/(test)+/ 表示匹配单词test至少一次

       二:改变优先级,加上括号可以提高优先级

       三:作为子模式使用

       四:反向引用,可以在正则模式中直接将子模式取出来,作为正则表达式模式的一部分,如果是在正则表达式像替换函数preg_replace函数中,可以将子模式去除,在被替换的字符串中使用。

\1:取第一个子模式

\n:取第n个子模式

注意:单双引号的区别,如”\\1”等价于‘\1’

 

③     原子:原子是正则表达式的最基本的组成单位,而且必须至少要包含一个原子,只要一个正则表达式可以单独使用的字符,就是原子

a)         元字符如果想做为原子使用,则必须使用转义字符“\”进行转义,如:\.,\*,\?等等

b)        转义字符除了可以将有意义的字符转成没意义的字符,还可以将没意义的字符转成有意义的字符,如:

\d ,\w,\s等等

.

匹配除换行符以外的任意字符  

\w

匹配字母或数字或下划线或汉字  [A-Za-z0-9_]

\s

匹配任意的空白符 如:空格,\n\r\t\f等等

\d

匹配数字  [0-9]

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

c)         可以自己定义一个原子表,用来匹配方括号中的任意一个原子

[a-z1-3]

[^A-Z]表示取反,用来匹配除了原子表中的原子意外的字符(^必须在[ ]内的第一个字符处出现),而且取反字符集可以匹配回车换行符

posted @ 2012-06-23 11:46  曾是土木人  阅读(532)  评论(0编辑  收藏  举报