一、正则表达式就是描述字符串排列模式的一种自定义语法规则二、如果可以使用字符串处理函数完成的任务,就不要使用正则三、有一些复杂的操作,只能使用正则完成
四、正则表达式也成为一种模式表达式
五、正则表达式就是通过构建具有特定规则的模式,与原子用的,不可以单独出现。
* :表示其前的原子可以出现多次 0 次 1 次 或多次。
+ :表示其前的原子可以出现 1 次,或多次,不能没有,最少有一个。
? :表示其前面的原子可以出现 0 次或 1 次。要么有要么只有一次。
{} :用于自己定义前面原子出现的次数。
写法:{m} //m 表示一个整数,{5}其前原子出现 5 次
{m,n} //m 和 n 表示一个整数,m=<其前原子出现次数=<n
{m,} //其前原子最少出现 m 次,没限制
. :默认情况下,除换行符外任意一个字符。
^ :直接在一个正则表达式的第一个字符出现,则表达式必须以这个正则表达式开始
$ :直接在一个正则表达式的最后一个字符出现,则表达式必须以这个正则表达式结尾
| :表示或的关系,它的优先级别是最低的,最后考虑它的功能
\b :表示一个边界
\B :表示一个非边界
//进行匹配的变量字符串
$pattern="/\bis\b/"; //正则表达式模式
$str=in"gthis is island";
() 【重点】 :
一、()作用,作为大原子使用:”/(abc)+/”。
二、改变优先级,加上括号可以提高优先级别:”/(ca(t|d)og)/”。三、作为子模式使用,正则表达式不光对一个字符串匹配一次。
四、可以取消子模式,就将()作为大原子或优先级使用,在括号最前加“ ?:” , 就可以取消这个子模式。
五、反向引用,可以在模式中直接将子模式取出来,再作为正则表达式模式的一部分,如果在正则表达式像替换函数 pre_replace 函数中,可以将子模式取出,在被替换的字符串中使用
\1 取第一个子模式 \2 取第二个子模式 ... \5(注意是单引号还是双引号引起来的正则)
„\1‟ “\\1”
优先级顺序(升降): \ => () (?:) [] => * + ? {}
=> ^ $ \b => |
4、模式修正符号 i u
“/ / 模式修正符”
1、就是几个字母
2、都可以一次使用一个,每一个具一定的意义,也可以连续使用多个
3、是对整个正则表达式调优使用,也可以说是对正则表达式功能的拓展
“/abc/” 只能匹配小写字母 abc
“/abc/i” 表示不区分大小写
“/abc/m” 是默认情况下,将字符串视为一行
“/abc/s” 如果没有使用这个模式修正符号时,元字符中的“.”默认不能表示换行符号(\n) “/abc/x” 表示模式中的空白忽略不计
“/abc/e” 正则表达式必须使用在 preg_replace
“/abc/A” 必须以目标字符串开头“/abc/Z” 必须以目标字符结尾“/abc/U” 正则表达式的特点:贪婪。
U 可以取消这种模式。
另一种可以使用 问号 ( .* ? .+ ? ) 完成。
两种同时出现,又开启“贪婪模式”
eg:
“/\<img\s*src=\”.*?\”\/\>/i
正则笔记 来自淘豆网www.taodocs.com转载请标明出处.