老生常谈php 正则中的i,m,s,x,e分别表示什么


Posted in PHP onMarch 02, 2017

i          
如果设定此修正符,模式中的字符将同时匹配大小写字母。

m       
当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。

s        
如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。

x         
如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 #以及下一个换行符之间的所有字符,包括两头,也都被忽略。

e         
如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,

?在 . + 和 * 之后 表示非贪婪匹配: *、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

例如:

<?php
$string = "上飞机离开我<img border='0' alt='' src='/uploadfile/2009/0921/20090921091612567.jpg' border='0' />sdfsdf";

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\'](.+?)[\"|\'] /", $string,$match); // 匹配src=的内容
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\'](.+)[\"|\'] /", $string,$match);
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg' border='
?>

例子:(?i):

(?i)在PHP中的意思是内部修正符,i指不区分大小写

其它的修正符还有x,m,s,U等。和我们使用的模式修正符是一样的。

区别在于它是在模式内部使用的。仅作用于(?i)所在的子模式内

ccc(a(?i))bcd 匹配 cccabcd和cccAbcd

而a(?i)bc则和abc加上\i修正符是一样的因为(?i)作用于整个模式

后向引用

对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对相关匹配的保存。

以上这篇老生常谈php 正则中的i,m,s,x,e分别表示什么就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP4在WinXP下IIS和Apache2服务器上的安装实例
Oct 09 PHP
用文本文件制作留言板提示(下)
Oct 09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
php时间不正确的解决方法
Apr 09 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
深入php多态的实现详解
Jun 09 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
教你php如何实现验证码
Jan 20 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 #PHP
根据key删除数组中指定的元素实现方法
Mar 02 #PHP
如何用PHP做到页面注册审核
Mar 02 #PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 #PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 #PHP
php实现遍历文件夹的方法汇总
Mar 02 #PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 #PHP
You might like
详解PHP中的Traits
2015/07/29 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
chrome调试javascript详解
2015/10/21 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
Python中字典和JSON互转操作实例
2015/01/19 Python
Python Grid使用和布局详解
2018/06/30 Python
python之文件读取一行一行的方法
2018/07/12 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python tkinter基本属性详解
2019/09/16 Python
Python绘制动态水球图过程详解
2020/06/03 Python
什么是python的id函数
2020/06/11 Python
python 实现性别识别
2020/11/21 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
中职应届生会计求职信
2013/10/23 职场文书
应届大学生自荐信
2013/12/05 职场文书
中考冲刺决心书
2014/03/11 职场文书
拔河比赛口号
2014/06/10 职场文书
小学感恩节活动总结
2015/03/24 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript