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

 更新时间:2017年03月02日 10:32:30   投稿:jingxian  
下面小编就为大家带来一篇老生常谈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分别表示什么就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • PHP和JS之间的数据交互并处理

    PHP和JS之间的数据交互并处理

    最近在开发Web应用程序时,经常会涉及到PHP与JS之间的数据传递,特别是传递复杂的数据结构,如数组。本文主要介绍如何使用PHP传递数组给JS,并在JS中使用这些数据
    2023-04-04
  • PHP框架Swoole定时器Timer特性分析

    PHP框架Swoole定时器Timer特性分析

    这篇文章主要介绍了PHP框架Swoole定时器Timer特性分析,在PHP项目开发中具有不错的实用价值,需要的朋友可以参考下
    2014-08-08
  • php 模拟POST|GET操作实现代码

    php 模拟POST|GET操作实现代码

    很早的时候,参加面试,需要使用php的函数模拟一个post访问。尽管对php很熟悉,但是由于面试之前很长时间没有使用php语言,所以就没有答上来。
    2010-07-07
  • PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法

    PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法

    这篇文章主要介绍了PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法,结合实例形式详细分析了php5.3环境下PDO_OCI模块的安装方法,并给出了连接Oracle测试程序,需要的朋友可以参考下
    2016-05-05
  • PHP getID3类的使用方法学习笔记【附getID3源码下载】

    PHP getID3类的使用方法学习笔记【附getID3源码下载】

    这篇文章主要介绍了PHP getID3类的使用方法,结合实例形式分析了getID3类的原理、功能及简单使用技巧,并附带了getID3类的源码供读者下载参考,需要的朋友可以参考下
    2019-10-10
  • PHP提供下载功能实现案例

    PHP提供下载功能实现案例

    这篇文章主要为大家介绍了PHP提供下载功能实现案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • PHP实现接收二进制流转换成图片的方法

    PHP实现接收二进制流转换成图片的方法

    这篇文章主要介绍了PHP实现接收二进制流转换成图片的方法,结合实例形式分析了php文件、目录及图形操作的相关技巧,需要的朋友可以参考下
    2017-01-01
  • PHP调用JAVA的WebService简单实例

    PHP调用JAVA的WebService简单实例

    本篇文章主要是对PHP调用JAVA的WebService简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • 用PHP代替JS玩转DOM的思路及示例代码

    用PHP代替JS玩转DOM的思路及示例代码

    思路就是通过DOMDocument将一个html file转换成DOM树的数据结构,再用DOMXPath的实例去搜索这个DOM树,接下来就可以对当前节点的子树进行遍历
    2014-06-06
  • DedeCMS dede_channeltype表字段注释

    DedeCMS dede_channeltype表字段注释

    学习过程中,可以通过参考别人的代码,让自己的技术进步的更快。
    2010-04-04

最新评论