正则表达式 - 模式修正符作用详解(i、g、m、s、x、e)

简介: 正则表达式 - 模式修正符作用详解(i、g、m、s、x、e)

正则表达式中常用的模式修正符有 i、g、m、s、x、e 等,它们之间可以组合搭配使用。

修正符 i 不区分大小写的匹配

如:"/abc/i" 可以与 abc 或 aBC 或 ABc 等匹配。

修正符 g 表示全局匹配

修正符 m 将字符串视为多行,不管是那行都能匹配

例:模式为:$mode="/abc/m"。
要匹配的字符串为:$str="bcefg5e\nabcdfe" 。
注意其中\n,换行了;abc换到了下一行。
$str和$mode仍可以匹配,修正符m使得多行也可匹配。

修正符 s 将字符串视为单行,换行符作为普通字符

例:模式为:$mode="/pr.y/"。
要匹配字符串为:$str="pr\ny"。
两者不可匹配;. 是除了换行以外的字符可匹配。
修改下模式为:$mode="/pr.y/s"。
其中修正符 s 将 \n 视为普通字符,即不是换行。
最后两者可以匹配。

修正符 x 将模式中的空白忽略


修正符 A 强制从目标字符串开头匹配

例:$mode="/abc/A"。
可以与 $str="abcsdfi" 匹配。
不可以与 $str2="sdsdabc" 匹配。
因为 $str2 不是以 abc 开头。

修正符 D 如果使用 $ 限制结尾字符,则不允许结尾有换行

例:模式为:$mode="/abc$/"。
可以与最后有换行的 $str="adshabc\n" 匹配。
元子符 $ 会忽略最后的换行 \n。
如果模式为:$mode="/abc/D"。
则不能与 $str="adshabc\n" 匹配。
修正符 D 限制其不可有换行;必需以 abc 结尾。

修正符 U 只匹配最近的一个字符串;不重复匹配

例:如模式为:
$mode="/a.*c/"
$str="abcabbbcabbbbbc"
preg_match($mode, $str, $content)
echo $content[0]
输出:abcabbbcabbbbbc
如果 $mode="/a.*c/";变成 $mode="/a.*c/U"
则只匹配最近一个字符串,输出:abc

修正符 e 配合函数 preg_replace() 使用,可以把匹配来的字符串当作正则表达式执行

目录
相关文章
|
4月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
72 0
|
PHP 开发者
你见过这些正则表达式中奇奇怪怪的匹配模式吗 _ 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
一篇文章让你清楚的了解正则表达式中奇奇怪怪的匹配模式-- 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
89 1
你见过这些正则表达式中奇奇怪怪的匹配模式吗 _ 贪婪匹配、懒惰匹配 、禁止贪婪匹配!
|
开发者
正则表达式中子模式如何取别名 注释又怎么写
正则表达式的注释居然有如此玄机!
52 0
正则表达式中子模式如何取别名 注释又怎么写
|
7月前
|
JavaScript 前端开发 索引
JavaScript中的正则表达式:使用与模式匹配
【4月更文挑战第22天】本文介绍了JavaScript中的正则表达式及其模式匹配,包括字面量和构造函数定义方式,以及`test()`、`match()`、`search()`和`replace()`等匹配方法。正则表达式由元字符(如`.`、`*`、`[]`)和标志(如`g`、`i`)组成,用于定义搜索模式。文中还分享了正则使用的技巧,如模式分解、非捕获分组和注释。掌握正则表达式能提升文本处理的效率和代码质量。
|
7月前
|
数据可视化 容器
解锁正则表达式的秘密:regex-vis工具带你看见模式匹配的魔法!
解锁正则表达式的秘密:regex-vis工具带你看见模式匹配的魔法!
160 2
|
7月前
|
存储 Shell 程序员
Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配
Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配
107 0
|
开发者 Perl
正则表达式中的模式修正符S和M 妙用!
教你如何正确使用正则表达式中的模式修正符S和M!
72 0
正则表达式中的模式修正符S和M 妙用!
|
PHP 开发者
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
如果你还没有搞懂模式修饰符是什么?那么你必须要看一下这篇文章!!
68 0
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
|
Python
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
86 2
|
6月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
66 2