PHP学习之正则表达式


Posted in PHP onApril 17, 2011

现在我们大家所说的正则表达式基本上是指兼容Perl风格的正则表达式。POSIX风格的正则表达式基本上没人使用了,所以从PHP5.3起,已经不推荐使用了,可能到PHP的下一个版本就会把相关的函数删除。

关于正则表达式,因为太复杂,所以以后想专看一本正则的书,所以只介绍兼容Perl风格的正则表达式的一些函数。

1. 定界符
定界符表示正则表达式的开始和结尾,一般用斜线(/)表示。在PHP中(其它语言暂时没有测试过),它也可以用其它的非数字字母的字符来代替。如/\d+/和#\d+#的表示同一个正则表达式\d+。同时,也可以用小括号对,中括号对,大括号对做为定界符,如[\d+]。

2. 函数
匹配函数:preg_match(); 以及preg_match_all();
替换函数:preg_replace();
拆分函数:preg_split();
过滤函数:preg_grep();

示例代码:

$a = <<< TEXT 
aaaaaaa 15 
bbbbbbb 16 
TEXT; 
$ret = preg_match(/(\w+) (\d+)/, $a, $match); 
// $ret : 1 
// $match : array(aaaaaaa 15′, aaaaaaa, 15′) $ret = preg_match_all(/(\w+) (\d+)/, $a, $match); 
// $ret : 2 
// $match : array( 
// array(aaaaaaa 15′, bbbbbbb 16′), 
// array(bbbbbbb, bbbbbbb), 
// array(15′, 16′), 
// ) 
$ret = preg_match_all(/(\w+) (\d+)/, $a, $match, PREG_SET_ORDER); 
// $ret : 2 
// $match : array( 
// array(aaaaaaa 15′, bbbbbbb, 15′), 
// array(bbbbbbb 16′, bbbbbbb, 16′), 
// ) 
$b = preg_replace(/(\w+) (\d+)/, \1, \2′, $a); 
// $b : aaaaaaa, 15 
// bbbbbbb, 16′ 
$c = preg_split(/\s/, $a); 
// $c : array(aaaaaaa, 15′, bbbbbbb, 16′) 
$files = array(aa.txt, bb.xls, cc.txt); 
$txtFiles = preg_grep(/.*\.txt/, $files); 
// $txtFiles : array(aa.txt, cc.txt)

参考资料:
PHP程序设计,2003,第四章 字符串,正则表达式
PHP 相关文章推荐
PHP安装问题
Oct 09 PHP
站长助手-网站web在线管理程序 v1.0 下载
May 12 PHP
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
php实现word转html的方法
Jan 22 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
PHP学习之字符串比较和查找
Apr 17 #PHP
PHP学习之整理字符串
Apr 17 #PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 #PHP
PHP基础学习小结
Apr 17 #PHP
php 生成文字png图片的代码
Apr 17 #PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 #PHP
php编写一个简单的路由类
Apr 13 #PHP
You might like
composer.lock文件的作用
2016/02/03 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
Python实现文件内容批量追加的方法示例
2017/08/29 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
挂靠协议书范本
2014/04/22 职场文书
保护黄河倡议书
2014/05/16 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
新手上路标语
2014/06/20 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
学校运动会广播稿
2014/10/11 职场文书
美丽的大脚观后感
2015/06/03 职场文书
少年雷锋观后感
2015/06/10 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书