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

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

正则表达式模式修饰符(也称为标志或模式修饰符)用于改变正则表达式的行为。这些修饰符可以附加在正则表达式的定界符之后,通常为正斜杠(/)或井号(#),以改变搜索或替换的方式。

1、i(IGNORECASE):不区分大小写。在匹配时,模式字符串中的字符将被视为不区分大小写。

preg_match('/foo/i', 'FOO'); // 匹配成功

2、m (MULTILINE): 使开始和结束字符(^ 和 $)工作于包含换行的每一行上(通常只影响整行的匹配)。在多行字符串中,每一行都会被视为一个独立的字符串。

preg_match('/^bar/', "foo\nbar\nbaz", $matches, PREG_OFFSET_CAPTURE, 3); // 不匹配,因为没有在第三行开始处找到  
preg_match('/^bar/m', "foo\nbar\nbaz", $matches, PREG_OFFSET_CAPTURE, 3); // 匹配成功,因为在第二行开始处找到了

3、s (DOTALL): 使点号(.)匹配包括换行符在内的所有字符。默认情况下,. 不会匹配换行符。

preg_match('/.+/', "foo\nbar"); // 只匹配 "foo"  
preg_match('/.+/s', "foo\nbar"); // 匹配 "foo\nbar"

4、x(EXTENDED):忽略模式中的空白字符(但不包括在字符类中的字符)。这使得正则表达式更易读和编写。在 x 模式下,你可以使用 # 来添加注释。

preg_match('/foo # 这是一个注释  bar/x', 'foobar'); // 匹配成功

5、e(EVALUATE):这个修饰符在 PHP 5.5.0 中已被弃用,并在 PHP 7.0.0 中被移除。它允许你在匹配之后执行 PHP 代码。出于安全原因,不建议使用此修饰符,因为它可能导致代码注入。

注意: e 修饰符(在 PHP 中称为评估修饰符)在 PHP 5.5.0 之后已被废弃,并且在 PHP 7.0.0 中被移除,因为它可能导致安全问题(执行不受信任的代码)。

http://www.lryc.cn/news/358395.html

相关文章:

  • 最新!2023年台湾10米DEM地形瓦片数据
  • 网络学习(11) |深入解析客户端缓存与服务器缓存:HTTP缓存控制头字段及优化实践
  • uniapp中二次封装jssdk和使用
  • 只刷题可以通过PMP考试吗?
  • Python Selenium 详解:实现高效的UI自动化测试
  • npm获取yarn在安装依赖时 git://github.com/user/xx.git 无法访问解决方法 -- 使用 insteadOf设置git命令别名
  • Centos7网络故障,开机之后连不上网ens33mtu 1500 qdisc noop state DOWN group default qlen 1000
  • 分析 Base64 编码和 URL 安全 Base64 编码
  • cocos 屏幕点击坐标转换为节点坐标
  • 电瓶车进电梯识别报警摄像机
  • 数据库到服务器提权
  • 【MySQL精通之路】InnoDB(9)-表和页压缩(1)-表压缩
  • 【前端】vue+element项目中select下拉框label想要显示多个值多个字段
  • 橙派探险记:开箱香橙派 AIpro 与疲劳驾驶检测的奇幻之旅
  • 云计算期末复习(1)
  • frp转发服务
  • 【主流分布式算法总结】
  • spring cloud config server源码学习(一)
  • 人脸识别——探索戴口罩对人脸识别算法的影响
  • 磁盘管理后续——盘符漂移问题解决
  • 基于GO 写的一款 GUI 工具,M3u8视频下载播放器-飞鸟视频助手
  • 关于EasyExcel导入数据时表格日期格式识别为数字问题
  • 高通Android 12/13打开省电模式宏开关
  • 2023年西安交通大学校赛(E-雪中楼)
  • 如何在vue2中使用tailwind
  • 【OrangePi AIpro】开箱初体验以及OAK深度相机测试
  • 滑动窗口模板(Java)
  • transformers.BertTokenizer入门使用
  • 快乐数-力扣
  • Git标签的使用