正则
时间匹配
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
1. 问号相关
应用场景对比表
| 语法类型 |
典型场景 |
示例用途 |
量词{0,1} ? |
可选内容匹配 |
http(s?) 匹配协议 |
非贪婪 *? |
提取最短内容 |
<div>.*?</div> 匹配标签 |
预查断言 (?=)(?!) |
密码复杂度验证 |
(?=.*\d)(?=.*[A-Z]) |
非捕获组 (?:) |
组合多个选项 |
(?:jpg) |
命名组 (?P<>) |
结构化数据提取 |
日志解析、字段提取 |
模式修饰符 (?i) |
局部忽略大小写 |
混合大小写的关键字匹配 |
其他修饰符
| 修饰符 |
名称 |
作用范围 |
功能描述 |
i |
Case Insensitive |
全局或局部 |
忽略大小写匹配 |
m |
Multiline |
全局或局部 |
使 ^ 和 $ 匹配每行的开头和结尾(而非整个字符串) |
s |
Dot All |
全局或局部 |
让 . 匹配包括换行符(\n)在内的所有字符 |
g |
Global |
全局(部分语言) |
全局匹配(如 JavaScript 中启用多次匹配) |
u |
Unicode |
全局或局部 |
启用完整的 Unicode 支持(如处理四字节字符) |
x |
Extended |
全局或局部 |
忽略正则中的空白和注释(允许格式化编写复杂正则) |
A |
Anchored |
全局(PCRE) |
强制从目标字符串开头开始匹配(类似 ^ 但更严格) |
D |
Dollar End Only |
全局(PCRE) |
使 $ 仅匹配字符串末尾(默认行为,与 m 修饰符冲突时需注意) |
U |
Ungreedy |
全局(PCRE) |
反转量词的贪婪性(* 和 + 变为非贪婪,*? 和 +? 变为贪婪) |