正则表达式 - 模式修正符作用详解(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() 使用,可以把匹配来的字符串当作正则表达式执行

目录
相关文章
|
8月前
|
开发者 Perl
正则表达式中的模式修正符S和M 妙用!
教你如何正确使用正则表达式中的模式修正符S和M!
39 0
正则表达式中的模式修正符S和M 妙用!
|
8月前
|
PHP 开发者
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
如果你还没有搞懂模式修饰符是什么?那么你必须要看一下这篇文章!!
34 0
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
|
9月前
|
Python
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
60 2
|
11月前
|
Python
34.从入门到精通:Python3 正则表达式检索和替换 repl 参数是一个函数 正则表达式对象 正则表达式修饰符 - 可选标志 正则表达式模式* 正则表达式实例
34.从入门到精通:Python3 正则表达式检索和替换 repl 参数是一个函数 正则表达式对象 正则表达式修饰符 - 可选标志 正则表达式模式* 正则表达式实例
|
11月前
|
JavaScript Java Linux
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(三)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
|
11月前
|
JavaScript 搜索推荐 Linux
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(二)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(二)
|
11月前
|
数据可视化 搜索推荐 Unix
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(一)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
|
JavaScript 前端开发 索引
正则表达式系列之 —— 模式(Patterns)和修饰符(flags)
正则表达式系列之 —— 模式(Patterns)和修饰符(flags)
112 0
正则表达式系列之 —— 模式(Patterns)和修饰符(flags)
|
JavaScript 前端开发 C#
JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
113 0
JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
|
2月前
|
编译器 Python
Python正则表达式的7个使用典范(推荐)
Python正则表达式的7个使用典范(推荐)
25 0