PHP学习笔记----正则表达式

来源:互联网 发布:nothing软件邀请码 编辑:程序博客网 时间:2024/04/30 05:50

正则表达式三句话

a.找什么

b.从哪找

c.找几个

①如果正则表达式不和函数一起使用,就纯粹是一个字符串,只有和函数一起使用才发挥他真实的威力

②语法:

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

A.定界符号/ /(上例中的符号)

B.weixin接口 在哪 

除了字母、数字和正斜杠\以外的任何字符都可以为定界符号

没有特殊需要我们都是用正斜线为正则表达式的定界符号

C.原子img \s

注意:原子是正则表达式的最基本的组成单位,而且必须至少要包含一个原子

  只要一个正则表达式可以独立使用的字符,就是原子

  1.所有打印(所有可以在屏幕上输出的字符串)和非打印字符(看不到的)

  2..*+?(<>如果所有有意义的字符,想作为原子使用,通通使用“\”转义字符转义     “\”转义字符可以将有意义的字符转成没意义的字符,还可以将没意义的字符转成有意义的字符

  3.在正则表达式中可以直接使用一些代表范围的原子

\d   表示一个任意的十进制数字

\D   表示任意一个除数字之外的字符

\s    表示任意一个空白字符

\S   表示任意一个非空白字符

\w   表示任意一个字 a-z A-Z0-9

\W  表示任意一个非字 a-z A-Z0-9

4.自定义一个原子表[],可以匹配括号中的任何一个原子

[^]表示取反的意思,例如[^a-z]表示除a-z以外的数  

D.元字符 * ?

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

*  表示其前的字符可以出现0次,1次或多次

+  表示其前的字符可以出现1次或多次

?  表示其前的原子可以出现0次或1

{} 用于定义前面原子出现的次数,{m} m表示一个整数,{5}表示前面的原子出现5次,{m,n}表示前面出现的原子最少出现m次,最多出现n次,{m,}表示前面的字符最少出现m

.  默认情况下,表示除换行符外任意一个字符

直接在一个正则表达式的第一个字符出现,则表达必须以这个正则表达式开始

直接在一个正则表达式的最后一个字符出现,则表达必须以这个正则表达式结束

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

()   A.作为大原子使用

    B.还可以改变优先级

    C.还可以作为子模式使用(以括号内的正则表达式所匹配到的结果放入其他数组元素中去)。有的时候你想用作改变优先级却不想当作子模式来使用,这在(后加?:

    D.还可以在模式中把子模式取出来,再作为正则表达式模式的一部分,遇到替换函数如prag_replace函数中,可以将子模式取出,在被替换的字符串中使用。如果想把子模式取出来可以用 \1 表示把第一个子模式取出来 需要注意的是看清楚是在单引号还是双引号中使用,如果在双引号中使用则需要再加一个\表转义

\b 表示一个边界

\B 表示一个非边界

E.模式修正符号i u

“//模式修正符

1.就是几个字母

2.可以一次使用一个,每一个具有一定的意义,也可以连续使用多个

3.是对整个正则表达式调优使用,也可以说是对正则表达式功能的扩展

表示在和模式进行匹配时不区分大小写

默认情况,将字符视为一行 ^ $ 视为多行后,任何一行都可以以正则开始或结束

如果没有使用这个模式修正符号时,元字符中的“.”默认不能表示换行符号,将字符串视为单行

表示模式中的空白忽略不计

正则表达式有个特点---贪婪,这个可以用来取消这个贪婪模式

注意:有的时候匹配到的正则表达式与输出的不尽相同,那是因为echo函数会把一部分转义掉,此时在要输出的内容两头加上<xmp>标签就可以看到被转义的字符了

 

 

 

PHP中与perl兼容的正则处理函数

 

0 0
原创粉丝点击