欢迎光临
我们一直在努力

最近学正则,记了一些笔记

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>

 

赞(0) 打赏
未经允许不得转载:Sangco – 程序员之家 » 最近学正则,记了一些笔记
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏