EfficTools Logo
EfficTools

正则测试

测试和验证正则表达式

正则表达式
//
测试文本0 个匹配
替换(可选)

匹配结果

输入正则表达式开始匹配

常用正则

语法参考

.任意字符
\d数字
\w字母数字
\s空白字符
^开头
$结尾
*0+次
+1+次
?0或1次
{n}n次
[abc]字符集
()捕获组

功能特点

专业的正则表达式测试工具

实时高亮

匹配内容实时高亮显示,直观展示匹配结果

捕获组支持

显示每个匹配的捕获组内容,方便调试复杂正则

替换功能

支持替换操作,可使用 $1、$2 等引用捕获组

标志切换

一键切换 g/i/m/s/u 等标志,灵活控制匹配行为

常用模板

内置邮箱、手机号、URL 等常用正则表达式模板

隐私安全

所有处理在浏览器本地完成,测试内容不会上传

常见问题

关于正则表达式的常见疑问

正则表达式中的标志有什么作用?
g (global):全局匹配,查找所有匹配项而非仅第一个。i (case-insensitive):忽略大小写。m (multiline):多行模式,^ 和 $ 匹配每行的开头结尾。s (dotAll):让 . 匹配包括换行符在内的任意字符。u (unicode):启用 Unicode 模式,正确处理 Unicode 字符。
什么是捕获组?怎么使用?
用圆括号 () 包围的部分会被捕获,可以在替换时用 $1、$2 等引用。例如:正则 (\d+)-(\d+) 匹配 "2023-12" 时,$1 是 "2023",$2 是 "12"。替换为 $2/$1 结果是 "12/2023"。
贪婪模式和非贪婪模式有什么区别?
贪婪模式(默认):尽可能多地匹配字符。如 a.*b 匹配 "axxbxxb" 中的 "axxbxxb"。非贪婪模式:在量词后加 ? 表示尽可能少地匹配。如 a.*?b 匹配 "axxbxxb" 中的 "axxb"。
如何匹配特殊字符本身?
需要转义的特殊字符:. * + ? ^ $ { } [ ] \ | ( )。在这些字符前加反斜杠 \ 即可匹配字符本身。例如:匹配 "3.14" 使用 3\.14,匹配 "(test)" 使用 \(test\)
JavaScript 和其他语言的正则有区别吗?
本工具使用 JavaScript 正则引擎,与大多数语言兼容但有细微差异:• JavaScript 不支持后行断言的某些语法(新版本已支持)• 不支持命名捕获组的某些语法• 标志字母可能略有不同(如 Python 使用 re.IGNORECASE)。基本语法在各语言间通用。