首页正则表达式测试

正则表达式测试

测试和调试正则表达式模式,提供即时匹配结果和替换功能

匹配结果

未找到匹配项

匹配详情

输入正则表达式模式和测试文本以查看详细匹配信息
//

快速模式

替换功能

使用 $1, $2 等表示捕获组
                  
                
此 sed 命令可用于 Unix/Linux/macOS 终端或 Windows 上的 Git Bash

关于正则表达式测试器

正则表达式测试器是一个强大的工具,用于实时测试和调试正则表达式。它提供模式匹配的即时反馈,在测试文本中高亮显示匹配项并显示详细的匹配信息。

此工具支持所有JavaScript正则表达式标志,并提供常用模式的快速访问。无论您是在验证用户输入、解析数据还是学习正则语法,此测试器都能使过程变得交互和可视化。

如何使用此工具

  1. 选择快速模板或输入您的正则表达式模式
  2. 设置适当的标志(g表示全局,i表示忽略大小写,m表示多行)
  3. 输入或加载示例测试文本
  4. 查看实时匹配结果和详细信息
  5. 使用替换功能测试替换操作

主要功能

  • 实时正则测试,提供即时视觉反馈
  • 支持所有JavaScript正则标志 (g, i, m, s, u, y)
  • 匹配文本的语法高亮显示
  • 详细的匹配信息,包含分组和位置
  • 快速访问常用正则模式
  • 匹配结果的复制功能
  • 多行文本支持,格式正确

正则标志说明

g
全局匹配 (g)
查找所有匹配项,而不是在第一个匹配后停止
i
忽略大小写 (i)
不区分大小写匹配
m
多行模式 (m)
^ 和 $ 匹配行的开始/结束,而不仅仅是字符串的开始/结束

使用技巧

  • 使用全局标志(g)查找文本中的所有匹配项
  • 用各种输入样本测试正则表达式以确保准确性
  • 使用捕获组()提取匹配的特定部分
  • 忽略大小写标志(i)对不区分大小写的搜索很有用
  • 使用\b表示单词边界,仅匹配完整单词
  • 测试边缘情况,如空字符串和特殊字符

常用模式

基础模式
\d任意数字 (0-9)
\w单词字符 (a-z, A-Z, 0-9, _)
\s空白字符
.除换行符外的任意字符
量词
+一个或多个
*零个或多个
?零个或一个
{n}恰好n次
锚点
^行开始
$行结束
\b单词边界

实际示例

邮箱地址验证

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}

匹配常见邮箱地址格式。

匹配: john.doe@example.com,support@codertools.net

电话号码(美国格式)

\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})

捕获区号、交换机号和号码,支持多种分隔符。

匹配: (555) 123-4567,555.987.6543,555-123-4567

URL匹配

https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)

匹配HTTP/HTTPS网址,支持可选www前缀和路径。

匹配: https://example.com,http://www.site.org/path

强密码验证

^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d@$!%*?&]{8,}$

至少8位,包含大小写字母和数字。

匹配: Password123,MyStr0ngP@ss

高级功能

捕获组
使用括号()捕获匹配的部分用于替换或输出。
([0-9]{4})-([0-9]{2})-([0-9]{2})
前瞻/后瞻
基于前后内容进行匹配但不包含它们。
(?=.*password)
非捕获组
使用(?:pattern)分组但不占用捕获组编号。
(?:http|https)://

sed 命令生成

根据正则表达式和替换文本生成等效的 sed 命令,便于在命令行中使用。

搜索模式(空替换)

替换文本为空时,仅打印匹配的行。

sed -n '/pattern/p' input.txt
示例:模式:error
结果:打印所有包含 'error' 的行

替换模式(有替换内容)

提供替换文本时,生成替换命令。

sed 's/pattern/replacement/flags' input.txt
示例:模式:foo,替换:bar
结果:将所有 'foo' 替换为 'bar'
特殊字符会自动转义。命令可用于 Unix/Linux/macOS 终端或 Windows 的 Git Bash。

最佳实践

从简单开始,逐步增加复杂度
逐步构建模式,避免一次性写出过于复杂的表达式。
尽可能使用非捕获组
不需要捕获时使用(?:...)以提高性能并保持编号清晰。
锚定您的模式
在适当时候使用^和$限制匹配范围,避免误匹配。
使用具体的字符类
用[a-zA-Z]+或\\d{3}替代.*以减少回溯。
转义特殊字符
匹配字面量时记得转义 . * + ? [ ] ( ) { } ^ $ \\ |。
用边界情况测试
用空字符串、超长文本和特殊字符测试模式稳定性。

常见问题排查

为什么我的模式什么都匹配不到?
检查是否启用合适的标志,并确认特殊字符已正确转义。
为什么我的正则导致浏览器卡住?
嵌套量词可能导致灾难性回溯,尝试简化模式。
为什么捕获组返回意外的值?
组编号从1开始,组0是完整匹配,(?:...)不计入编号。
为什么在不同语言中行为不同?
正则实现存在差异,尤其是后行断言和Unicode支持,需在目标环境中测试。

数据默认在您的本地浏览器上处理,不会上传至服务器。如需上传会明确提示。

© 2026 See-Tool. 保留所有权利。 | 联系站长