PHP正则表达式
来源:互联网 发布:域名池是什么意思 编辑:程序博客网 时间:2024/06/15 04:33
思维导图:
展开图地址:点击打开链接
下面用几个例子来简单了解一下正则表达式函数的作用:
1.preg_match()
<?php$subject='http://www.baidu.com/index.php';$pattern='/(\w+):\/\/(\w+)\.(\w+)\.(\w+)\/(\w+\.\w+)/';if(preg_match($pattern,$subject,$matches)){echo "URL:".$matches[0]."<br>";echo "协议:".$matches[1]."<br>";echo "主机:".$matches[2]."<br>";echo "域名:".$matches[3]."<br>";echo "顶域:".$matches[4]."<br>";echo "文件:".$matches[5]."<br>";}else{echo "NOT FOUND";}?>
输出结果:
URL:http://www.baidu.com/index.php
协议:http
主机:www
域名:baidu
顶域:com
文件:index.php
这个函数不仅能获取整个URL地址,还可以通过正则表达式的模式获取每个组成部分。
2.preg_match_all()
<?php$subject='百度地址http://www.baidu.com/index.php谷歌地址http://www.google.com/index.php搜狐地址http://www.sohou.com/index.php';$pattern='/(http?|ftps?):\/\/(www|bbs)\.(\w+)\.(com|net|org)(\/\w+\.\w+)?/i';$count=1;if(preg_match_all($pattern,$subject,$matches,PREG_SET_ORDER)){foreach($matches as $vals){echo "第".$count."个的URL:".$vals[0]."<br>";echo "第".$count."个的协议:".$vals[1]."<br>";echo "第".$count."个的主机:".$vals[2]."<br>";echo "第".$count."个的域名:".$vals[3]."<br>";echo "第".$count."个的顶域:".$vals[4]."<br>";echo "第".$count."个的文件:".$vals[5]."<br>";$count++;}}else{echo "NOT FOUND";}?>输出结果:
第1个的URL:http://www.baidu.com/index.php
第1个的协议:http
第1个的主机:www
第1个的域名:baidu
第1个的顶域:com
第1个的文件:/index.php
第2个的URL:http://www.google.com/index.php
第2个的协议:http
第2个的主机:www
第2个的域名:google
第2个的顶域:com
第2个的文件:/index.php
第3个的URL:http://www.sohou.com/index.php
第3个的协议:http
第3个的主机:www
第3个的域名:sohou
第3个的顶域:com
第3个的文件:/index.php
这个函数与preg_match不同的一点就是它会一直匹配到字符串最后,获取所有的匹配结果。
3.preg_grep()
<?php$array=array("Linux RedHat9.0","Apache2.2.9","MySQL5.0.50","PHP5.3.1","LAMP","110");$version=preg_grep('/^[a-z]+\d+\.\d+\.\d+$/i',$array);echo "<pre>";print_r($version);echo "</pre>";?>
输出结果:
Array( [1] => Apache2.2.9 [2] => MySQL5.0.50 [3] => PHP5.3.1)
这个函数将匹配到的内容以数组的形式返回。
4.preg_replace()
<?php$str="[b]aaaaaaa[/b][i]bbbbbb[/i][u]hehe[/u]";$pattern=array('/\[b\](.+)\[\/b\]/','/\[i\](.+)\[\/i\]/','/\[u\](.+)\[\/u\]/');$array=array('<b>$1</b>','<i>$1</i>','<u>$1</u>');$str2=preg_replace($pattern,$array,$str);echo "<pre>";print_r($str2);echo "</pre>";?>输出结果:
aaaaaaabbbbbbhehe这个函数在字符串替换上面有很好的作用。这个例子将UBB代码转为HTML代码,通常的留言板中需要到这个功能,防止被其他代码破坏界面布局。
5.preg_split()
这个函数就不举例子了,主要是用于按正则表达式对字符串进行分割。
2 0
- php的正则表达式
- PHP 正则表达式资料
- PHP 正则表达式
- php正则表达式介绍
- PHP 正则表达式资料
- php之正则表达式
- PHP和正则表达式
- PHP常用正则表达式
- php正则表达式实例
- PHP正则表达式收集
- PHP正则表达式收集
- PHP正则表达式
- PHP中的正则表达式
- PHP中的正则表达式
- PHP和正则表达式
- PHP常用正则表达式
- php正则表达式详解
- PHP正则表达式
- hash join驱动表问题
- String,StringBuffer与StringBuilder的区别??
- BitMap工具类
- RailsCast25 SQL Injection SQL注入
- OSI七层模型详解
- PHP正则表达式
- C语言中指针,数组,字符串及函数
- DLL(动态连接库)
- Linux软件的卸载
- i++与++i
- Store Kit Guide(In App Purchase)翻译
- 工作中的项目总结概览
- spring 学习书籍
- Android中的SystemClock类