【正则表达式】 正则表达式的修饰符有哪些?
🌈 个人主页:(时光煮雨)
🔥 高质量专栏:vulnhub靶机渗透测试
👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分95+),分享更多关于网络安全、Python领域的优质内容!(希望得到您的关注~)
🌵目录🌵
- 前言
- 🍈一、常用修饰符
-
- 🍉1.1.常用修饰汇总
- 🍐1.2.g 修饰符
- 🍊1.3.i 修饰符
- 🍋1.4.m 修饰符
- 🍍1.5.s 修饰符
- 🥝二、扩展说明
- 🤝 期待与你共同进步
- 📚 参考文档
前言
正则表达式修饰符(也称为模式修饰符或标记)是用于改变正则表达式匹配行为的特殊指令。
标记也称为修饰符,正则表达式的标记用于指定额外的匹配策略。
标记不写在正则表达式里,标记位于表达式之外,格式如下:
/pattern/flags
🍈一、常用修饰符
🍉1.1.常用修饰汇总
下表列出了正则表达式常用的修饰符:
-
i (ignore case) - 忽略大小写
- 使匹配不区分大小写
- 示例:/abc/i 可以匹配 “abc”, “Abc”, “ABC” 等
- 支持语言:几乎所有正则表达式实现(JavaScript、PHP、Python等)
-
g (global) - 全局匹配
- 查找所有匹配项,而不是在第一个匹配后停止
- 示例:在字符串 “ababab” 中,/ab/g 会匹配所有三个 “ab”
- 支持语言:JavaScript、PHP等
-
m (multiline) - 多行模式
- 改变 ^ 和 $ 的行为,使其匹配每行的开头和结尾,而不仅是整个字符串的开头和结尾
- 示例:在多行字符串中,/^abc/m 会匹配每行开头的 “abc”
- 支持语言:JavaScript、PHP、Python、Perl等
-
s (single line/dotall) - 单行模式
- 使用点号 . 匹配包括换行符在内的所有字符
- 在JavaScript中称为"dotall"模式,使用 /s 修饰符
- 示例:/a.b/s 可以匹配 “a\nb”
- 支持语言:PHP、Perl、Python(作为re.DOTALL)、JavaScript(ES2018+)
-
u (unicode) - Unicode模式
- 启用完整的Unicode支持
- 正确处理UTF-16代理对和Unicode字符属性
- 示例:/\p{Script=Greek}/u 可以匹配希腊字母
- 支持语言:JavaScript、PHP等
-
y (sticky) - 粘性匹配
- 从目标字符串的当前位置开始匹配(使用lastIndex属性)
- 类似于^锚点,但针对的是匹配的起始位置
- 示例:在JavaScript中,/a/y 会从lastIndex开始匹配 “a”
- 支持语言:JavaScript
-
x (extended) - 扩展模式
- 忽略模式中的空白和注释,使正则表达式更易读
- 示例:在PHP中,/a b c/x 等同于 /abc/
- 支持语言:PHP、Perl、Python(作为re.VERBOSE)
🍐1.2.g 修饰符
g 修饰符可以查找字符串中所有的匹配项: