正则表达式测试器
测试正则表达式模式并实时查看匹配结果的免费在线工具。
//
Flags
- g - Global: Find all matches
- i - Case insensitive
- m - Multiline: ^ and $ match line breaks
- s - Dotall: . matches newlines
- u - Unicode: Full unicode support
Common Syntax
.- Any character\d- Digit (0-9)\w- Word character (a-z, A-Z, 0-9, _)\s- Whitespace*- 0 or more+- 1 or more?- 0 or 1[abc]- Any of a, b, or c(abc)- Capture group
主要功能
- 实时匹配: 输入即时查看结果
- 5 种标志: 支持 g, i, m, s, u
- 高亮显示: 匹配部分可视化显示
- 组捕获: 提供捕获组详细信息
- 常用模式: 提供常用模式
- 位置信息: 显示每个匹配的开始/结束位置
标志说明
| 标志 | 名称 | 说明 |
|---|---|---|
| g | Global | 查找所有匹配 (不只是第一个) |
| i | Ignore Case | 不区分大小写 |
| m | Multiline | ^ 和 $ 匹配每行的开始/结束 |
| s | Dotall | . 也匹配换行符 |
| u | Unicode | 完全支持 Unicode |
常用模式示例
电子邮件
\w+@\w+\.\w+
匹配: user@example.com, admin@test.org
URL
https?://[\w\-._~:/?#\[\]@!$&'()*+,;=]+
匹配: http://example.com, https://site.com/page
电话号码
\+?\d{1,4}?[-.\s]?\(?\d{1,3}?\)?[-.\s]?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}
匹配: 010-1234-5678, +82-10-1234-5678
十六进制颜色
#[0-9a-fA-F]{6}|#[0-9a-fA-F]{3}
匹配: #FF5733, #f00
日期 (YYYY-MM-DD)
\d{4}-\d{2}-\d{2}
匹配: 2024-01-15
IP 地址
\b(?:\d{1,3}\.){3}\d{1,3}\b
匹配: 192.168.0.1
捕获组
基本组
模式: (\d{4})-(\d{2})-(\d{2})
文本: 2024-01-15
组 1: 2024
组 2: 01
组 3: 15
命名组
模式: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
文本: 2024-01-15
组 year: 2024
组 month: 01
组 day: 15
实用示例
提取 HTML 标签
<(\w+)[^>]*>
文本:
<div class="box">Content</div>
<p>Paragraph</p>
匹配: div, p
验证变量名
^[a-zA-Z_$][a-zA-Z0-9_$]*$
有效: myVar, _temp, $value 无效: 123abc, my-var
提取数字
-?\d+\.?\d*
匹配: 123, -45, 67.89, -0.5
单词边界
\bcat\b
文本: "cat category catch" 匹配: cat (仅第一个)
高级模式
前瞻 (Lookahead)
# 正向前瞻
\d+(?= won)
文本: "100 won, 200 dollars"
匹配: 100
# 负向前瞻
\d+(?! won)
文本: "100 won, 200 dollars"
匹配: 200
后顾 (Lookbehind)
# 正向后顾
(?<=\$)\d+
文本: "$100, 200 won"
匹配: 100
# 负向后顾
(?<!\$)\d+
文本: "$100, 200 won"
匹配: 200
非贪婪匹配
# 贪婪
<.*>
文本: "<div>test</div>"
匹配: <div>test</div> (全部)
# 非贪婪
<.*?>
文本: "<div>test</div>"
匹配: <div>, </div> (各自)
性能技巧
1. 使用具体模式
# 慢
.*
# 快
[a-z]+
2. 使用锚点
# 慢
\d{4}-\d{2}-\d{2}
# 快
^\d{4}-\d{2}-\d{2}$
3. 非捕获组
# 捕获 (