当前位置: 首页 > news >正文

PHP正则表达式的修饰符

i(PCRE_CASELESS)  

如果设置了这个修饰符,则表达式不区分大小写.  

 

m(PCRE_MULTILINE)  

默认的,PCRE认为目标字符串值是单行字符串(即使他确实包含多行).行开始标记(^)只匹配字符串的开始部分,而行结束标记($)只匹配字符串的尾部,或者一个结束行(除非指定E修饰符).这个和Perl里面一样.   如果设定了这个修饰符,行开始和行结束结构分别匹配在目标字符串任何新行的当前位置后面的或者以前的,和每一个开始和结束一样.这个等于Perl里面的/m修饰符.如果目标字符串没有"n"字符,或者模式里没有^或$,这个修饰符不起作用.  

 

s(PCRE_DOTALL)  

如果设置这个修饰符,模式里的一个"点"将匹配所有字符,包括换行.没有他,换行将被排除在外.这个修饰符等同于Perl里面的/s修饰符.一个相反的类型,例如[^a>将总是匹配换行字符,而不管这个修饰符的限制.  

 

x(PCRE_EXTENDED)  

如果设置这个修饰符,模式里面的空格数句将会被全部忽略,除非用转义符或者一个字符的内部类型,还有所有字符类型外的未转义的#号之间的也被忽略.这个等同于Perl里面的/x   修饰符,这样可以复杂的模式里面加入注释.注意,只适用于数据字符.空格字符将不会在指定的模式字符指定顺序中出现。  

 

e  

如果设置这个修饰符,preg_replace()将在替换值里进行正常的涉及到的替换,等同于在PHP代码里面一样,然后用于替换搜索到的字符串.   只在preg_replace()里使用这个修饰符;其它PCRE函数忽略他.  

 

A(PCRE_ANCHORED)  

如果设置这个修饰符,模式被强制为锚(anchored),也就是说,他将值匹配搜索字符串的开始.这个效果可以通过恰当的模式结构自身来实现,那是在Perl里面的唯一途径.  

 

D(PCRE_DOLLAR_ENDONLY)  

如果设置这个修饰符,则模式里的$修饰符将仅匹配目标字符串里的尾部.没有这个修饰符,$字符也匹配新行的尾部(但是不再新行的前面).如果设置了m修饰符则忽略这个修饰符.在Perl里面没有类似的.  

 

S  

如果一个模式将被使用多次,使用长些时间分析他来来提高匹配的速度.如果使用这个修饰符,则进行额外的分析.目前,研究模式仅用于非锚模式,没有一个固定的开始字符.  

 

U(PCRE_UNGREEDY)  

这个修饰符翻转数量的"greediness",使得默认不被greedy,但是如果你紧跟问号(?),则可以greedy.这个和Perl不兼容.这个也可以通过在模式里面的(?U)修饰符得到.  

 

X(PCRE_EXTRA)  

这个修饰符打开额外的功能,这些和Perl不兼容.任何模式里面的后面带字符但没有特殊意义的反斜杠将引起错误,从而储备这些联合用于将来的扩充.默认的,在Perl里面,   反斜杠后面有无意义的字符被当成正常的literal.目前还没有其他的控制特征  

转载于:https://www.cnblogs.com/szbing/p/3409021.html

相关文章:

  • HQL的select new map ···语法
  • 使用canvas检测HTML5视频解码错误
  • Android Studio 导出 Jar 给 Unity 使用
  • 数据库关联映射建表(一对一,一对多,多对多)
  • window环境下 恢复odoo数据库备份文件时产生的 Database restore error: Command `psql` not found....
  • ubuntu12.04下Eclipse上集成python
  • 莫名奇妙的异常001:Invalid or unexpected token
  • 通过MCollective更加安全地实现puppet的推送更新功能
  • 匈牙利算法
  • 新站上线后 收录又被删掉的原因
  • 「前端」尚妆 UI 组件库工程实践(weex vue)
  • (转载)虚函数剖析
  • EBS adpatch logfile : log, lgi
  • WCF 有零个操作;协定必须至少有一个操作
  • Oracle EBS 如何生成trace文件
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 03Go 类型总结
  • Android优雅地处理按钮重复点击
  • Angular 响应式表单 基础例子
  • axios 和 cookie 的那些事
  • chrome扩展demo1-小时钟
  • express.js的介绍及使用
  • JavaScript新鲜事·第5期
  • quasar-framework cnodejs社区
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • TypeScript实现数据结构(一)栈,队列,链表
  • 聊聊hikari连接池的leakDetectionThreshold
  • 提醒我喝水chrome插件开发指南
  • 王永庆:技术创新改变教育未来
  • 小程序01:wepy框架整合iview webapp UI
  • 移动端唤起键盘时取消position:fixed定位
  • 进程与线程(三)——进程/线程间通信
  • (4)(4.6) Triducer
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (java)关于Thread的挂起和恢复
  • (待修改)PyG安装步骤
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)汇编语言——简单程序
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net经典笔试题
  • .net快速开发框架源码分享
  • .NET学习教程二——.net基础定义+VS常用设置
  • .net中我喜欢的两种验证码
  • @Transactional 详解
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [.NET]桃源网络硬盘 v7.4
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)