正则表达式基础
正则表达式模式只是一种简洁描述要匹配文本的方式。从简单开始:先匹配一项内容,测试它,然后仅在需要时添加分组、定位符或量词。
定位符
^ 表示输入的开头,而 $ 表示输入的结尾。
字符类
[0-9], [A-Z],以及 [a-z] 匹配范围。
量词
* = 零个或多个, + = 一个或多个, ? = 可选。
常见模式
| 使用场景 | 模式 | 说明 |
|---|---|---|
| 邮箱 | ^[^\s@]+@[^\s@]+\.[^\s@]+$ | 适合通用验证,并非完整的 RFC 解析器。 |
| URL | https?:\/\/[^\s]+ | 匹配基本的 HTTP 和 HTTPS 链接。 |
| 整数 | ^-?\d+$ | 支持可选的负号。 |
| 小数 | ^-?\d+(\.\d+)?$ | 匹配整数和小数。 |
| 空白字符 | \s+ | 适合合并重复的空格和换行。 |
| 十六进制颜色 | ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ | 支持 3 位和 6 位颜色。 |
| IPv4 | \b(?:\d{1,3}\.){3}\d{1,3}\b | 匹配类似 IPv4 的文本,不进行严格的 0-255 校验。 |
| 空行 | ^\s*$ | 配合多行模式使用,可定位空行。 |
常用标志
g 全局
查找所有匹配项,而不是在第一个匹配后停止。
i 忽略大小写
使匹配不区分大小写,适用于关键词和用户输入。
m 多行模式
使 ^ 和 $ 按行处理。
s dotall
让 . 既能匹配换行,也能匹配普通字符。
常见正则陷阱
- 不要一开始就使用大而全的模式。逐步构建并测试每个部分。
- 记得转义特殊字符,例如 ., ?, +,以及 [ 当你想表示字面字符时。
- 如果你只想匹配完整单词,请添加边界,例如 \bword\b.
- 小心贪婪匹配。 .* 它通常捕获的内容会超出你的预期。
配合合适的工具使用本参考
在此查找模式,然后实时测试、应用到真实文本,或在替换工作流中使用。
相关工具