当前位置: 首页 > 编程笔记 >

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

弘承业
2023-03-14
本文向大家介绍老生常谈php 正则中的i,m,s,x,e分别表示什么,包括了老生常谈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分别表示什么就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍老生常谈JavaScript 正则表达式语法,包括了老生常谈JavaScript 正则表达式语法的使用技巧和注意事项,需要的朋友参考一下 JavaScript定义正则表达式有两种方法。 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); 它接收两个参数:一个是要匹配的字符串模式,另一个是可选的标志字符串。 2.字面量 var pa

  • 本文向大家介绍浅谈PHP正则表达式中修饰符/i, /is, /s, /isU,包括了浅谈PHP正则表达式中修饰符/i, /is, /s, /isU的使用技巧和注意事项,需要的朋友参考一下 在学习PHP正则表达式修饰符之前先来理解下贪婪模式,前面在元字符中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢? PHP正则表达式贪婪模式: 比如我们要匹配以字母"a"开头字母"b"结尾的

  • 本文向大家介绍PHP正则表达式 /i, /is, /s, /isU等介绍,包括了PHP正则表达式 /i, /is, /s, /isU等介绍的使用技巧和注意事项,需要的朋友参考一下 PHP正则表达式 /i, /is, /s, /isU等 都是些什么东西呢? i 不区分大小写 s 模式中的圆点元字符(.)匹配所有的字符,包括换行符 x 模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义

  • 本文向大家介绍老生常谈jquery中detach()和remove()的区别,包括了老生常谈jquery中detach()和remove()的区别的使用技巧和注意事项,需要的朋友参考一下 JQuery是一个很大强的工具库,在工作中开发中,可是有些方法还是因为不常用到,或是没有注意到而被我们而忽略。 remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而deta

  • 本文向大家介绍PHP中preg_match正则匹配中的/u、/i、/s含义,包括了PHP中preg_match正则匹配中的/u、/i、/s含义的使用技巧和注意事项,需要的朋友参考一下 PHP中preg_match正则匹配的/u /i  /s是什么意思 /u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /

  • 本文向大家介绍老生常谈PHP位运算的用途,包括了老生常谈PHP位运算的用途的使用技巧和注意事项,需要的朋友参考一下 在实际应用中可以做用户权限的应用 我这里说到的权限管理办法是一个普遍采用的方法,主要是使用到”位运行符”操作,& 位与运算符、| 位或运行符。参与运算的如果是10进制数,则会被转换至2进制数参与运算,然后计算结果会再转换为10进制数输出。 它的权限值是这样的 2^0=1,相应2进数为