跳至正文

正则表达式测试器

测试正则表达式模式并实时查看匹配结果的免费在线工具。

//

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
  • 高亮显示: 匹配部分可视化显示
  • 组捕获: 提供捕获组详细信息
  • 常用模式: 提供常用模式
  • 位置信息: 显示每个匹配的开始/结束位置

标志说明

标志名称说明
gGlobal查找所有匹配 (不只是第一个)
iIgnore Case不区分大小写
mMultiline^ 和 $ 匹配每行的开始/结束
sDotall. 也匹配换行符
uUnicode完全支持 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. 非捕获组

# 捕获 ()
(\d+)

# 非捕获 ()
(?:\d+)

常见错误

1. . 字符字面量

# 错误: . 匹配任何字符
example.com

# 正确: 用 \. 转义
example\.com

2. * 和 + 混淆

# *: 0 个或多个 (可能不匹配)
ab*c → ac, abc, abbc

# +: 1 个或多个 (必须匹配)
ab+c → abc, abbc (ac 不匹配)

3. 组编号

模式: (\d+)-(\d+)
文本: 123-456

组 0: 123-456 (完整匹配)
组 1: 123
组 2: 456

调试技巧

  1. 逐步测试: 将复杂模式分解为小部分进行测试
  2. 检查标志: 确认所需标志已启用
  3. 转义: 在特殊字符前添加 \
  4. 在线工具: 在多个正则表达式测试器中交叉验证

相关工具


💬 这个工具对您有帮助吗?

如果您觉得正则表达式测试器有用,请分享给其他开发者!

隐私保护

此工具完全在浏览器客户端运行。您输入的所有数据都不会发送到服务器,仅在浏览器中处理。