老生常谈php 正则中的i,m,s,x,e分别表示什么
发布:smiling 来源: PHP粉丝网 添加日期:2018-08-03 17:09:30 浏览: 评论:0
i
如果设定此修正符,模式中的字符将同时匹配大小写字母。
m
当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。
s
如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。
x
如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 #以及下一个换行符之间的所有字符,包括两头,也都被忽略。
e
如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,
?在 . + 和 * 之后 表示非贪婪匹配: *、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
例如:
- <?php
- $string="上飞机离开我<a href="/uploadfile/2009/0921/20090921091612567.jpg" target="_blank"><img alt="老生常谈php 正则中的i,m,s,x,e分别表示什么" src="/uploadfile/2009/0921/20090921091612567.jpg" border="Ɔ'"></a>sdfsdf";
- $su= <a href="/tags.php/preg_match/" target="_blank">preg_match</a>("/ \<[ ]*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 '?!' 来忽略对相关匹配的保存。
Tags: 正则
相关文章
- ·PHP用正则匹配form表单中所有元素的类型和属性值实例代码(2018-08-03)
- ·php用正则判断是否为数字的方法(2019-11-11)
- ·php正则的内容总结(详细)(2019-12-25)
- ·php正则表达式是什么?(代码实例)(2020-02-25)
- ·php用正则表达式匹配URL的简单方法(2020-06-23)
- ·PHP 正则判断中文UTF-8或GBK的思路及具体实现(2020-07-06)
- ·php中常见的sql攻击正则表达式汇总(2021-04-24)
- ·PHP中一些可以替代正则表达式函数的字符串操作函数(2021-04-26)
- ·UTF-8正则表达式如何匹配汉字(2021-06-15)
- ·php用户注册信息验证正则表达式(2021-06-26)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)