这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
下面小编就为大家带来一篇老生常谈 php 正则中的 i,m,s,x,e 分别表示什么。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
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 分别表示什么就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0813/340426.html