1.+
h+是至少包含一个h
/ph+p/
phhhhhp是匹配的
2.*
h*包含0个或多个h
/ph*p/
phhhhhp 和 pp 都是匹配的 ,但是前导字符不能更改.比如pop就不匹配
3.?
h? 0个或者1个h
phhhhhp 和 pp 都是匹配的
4..
p.p 匹配任意一个字符.每个.代表一个字符
php是匹配的
5..*
.* 前导任意字符0个或多个
p.*p
pikjsdhiufkujushdifp 匹配
6.{x}
ph{3}p 前导必须是3个
phhhp 匹配
6.{x,y}
ph{3,5}p 前导必须是3-5个
phhhp 匹配 phhhhhp 也匹配
6.{x,}
ph{3,}p 前导必须至少3个
phhhp 匹配 无论多少个h都行
7.$
php$ 一般加在模式尾部.表示从尾部开始匹配 示例必须以php为结尾
kjsadhsfjkiashfaphp 是匹配的
8.^
^php 一般加在模式头部.表示从头部开始匹配 示例必须以php为开头
phpkjsadhsfjkiashfa 是匹配的
9.|
php|asp 选择符号,左右其中一个存在即可匹配
php asp 都能匹配
元字符
1. [a-z] [A-Z] [0-9] [a-zA-Z0-9] [a-zA-Z0-9_]
中括号中,任意一个满足,即为匹配
2. [^abc]
不是在开头匹配的^,而是中括号里的^, 就是除了中括号中的任意字符为匹配
d为匹配
3.\w
为了让人们更方便 \w代表 [a-zA-Z0-9_]
3.\W
为了让人们更方便 \W代表 [^a-zA-Z0-9_]
4. \d 等同于[0-9] \D 等同于[^0-9]
5. \b
php\b是否到单词边界
php匹配 php is good 匹配 phpp不匹配
6.\
php\+p 匹配正则中的特殊字符. 比如+是特殊字符.但是你要匹配
php+p匹配
修饰符.一般放在//的外面
1.i 完成不区分大小写的搜索
/php/i
PHP php都是匹配的
2.m 多行识别的时候识别行尾用, 承认\n换行符为结尾
/php/m
“This is php\n,is good”是匹配的
3.忽略规则模式正则中的空白字符
/ph p/x
php是匹配的
4.A
/php/A 必须从头开始匹配同^,必须为php开头
phpsadijuhsefjiksdf 是匹配的
5.U
禁止贪婪
preg家族函数
1.preg_grep() 搜索数组中所有元素,返货有与某个匹配的所有元素组成的数组
$mode=’/p$/’;
$language=array(“php”,”asp”,”jsp”,”python”,”ruby”);
$arr=preg_grep($mode,$language);
print_r($arr);
结果:
Array
(
[0] => php
[1] => asp
[2] => jsp
)
2.preg_match() 搜索模式,直接返回真或者假 1,0
echo preg_match(‘/php[1-6]/’,’php7′);
结果:
0
———————————–
电子邮件的小案例:
$mode=’/^([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})$/’;
$string=”sangco@163.com”;
if(preg_match($mode,$string)){
echo “电子邮件合法!”;
}else{
echo “电子邮件不合法!”;
}
3.preg_match_all() 字符串中搜索所有出现,并放入数组
$mode=’/php[1-6]/’;
$string=”php5asjhgdasdphp4ahsjdguywephp3ndfsbfhdphp2″;
preg_match_all($mode,$string,$out);
print_r($out);
结果:
Array
(
[0] => Array
(
[0] => php5
[1] => php4
[2] => php3
[3] => php2
)
}
4.preg_quote() 特殊字符前加 “\” 一般没啥用
5.preg_replace() 搜索匹配的结果,然后替换掉
echo preg_replace(“/php[1-6]/”,’python’,”This is a php5,This is a php4″);
———————————–
小案例:
$mode=’/\[b\](.*)\[\/b\]/U’; //U为禁止贪婪, 匹配最近的字符
$replace = ‘<strong>\1</strong>’; //取第一组匹配
$string = “This is a [b]php5[/b],This is a [b]php4[/b]”;
echo preg_replace($mode,$replace,$string);
结果:
This is a <strong>php5</strong>,This is a <strong>php4</strong>