正则表达式测试
实时测试正则表达式:查看匹配结果、捕获组和替换效果
正在加载工具…
输入正则表达式和测试文本,立即高亮显示匹配结果,以及每个匹配的位置和分组值。在写进代码之前,可以用它确认表达式匹配的内容符合预期、替换结果正确。
使用方法
- 在“正则表达式”中输入表达式(不带斜杠),按 g、i、m 等标志按钮来打开或关闭标志。
- 在“测试文本”中输入文本。匹配部分会高亮显示,“匹配”标签页会列出它们的位置和分组。
- 在“替换”中,于“替换为”里输入 $1 等分组编号即可查看结果。“分割”显示匹配之间的各个部分。
- 在“常用表达式”中选一个示例,或打开“语法速查”查询符号。“复制分享链接”可以让别人打开相同的表达式和文本。
计算方式与说明
- 匹配使用浏览器的 JavaScript RegExp 引擎,所以结果与 JavaScript 代码中的相同。
- 匹配在单独的后台 worker 中运行,1 秒后停止。最多找出 10,000 个匹配,列表显示前 500 个。
- 你输入的内容不会被保存。分享链接把表达式和文本(前 4,000 个字符)放在链接本身中,不会上传任何内容。
常见问题
- 正则为什么只匹配到第一个?
- 没有 g 标志时,只会找到第一个匹配。打开 g 按钮即可找到所有匹配。
- 正则替换怎么引用捕获组?
- $1、$2 是编号分组,$& 是整个匹配;命名分组写成 $ 后面加上尖括号括起来的组名。把 (\d{4})-(\d{2})-(\d{2}) 替换为 $3.$2.$1,2024-03-15 就会变成 15.03.2024。
- 匹配邮箱地址的正则怎么写?
- “邮箱(简易)”示例为 [\w.+-]+@[\w-]+(?:\.[\w-]+)+。它能找出常见的邮箱地址,但不会检查电子邮件标准的所有规则。
- JavaScript 正则和 Python、Java 的正则一样吗?
- 基本语法大体相同,但细节有差异。例如,命名分组在 JavaScript 中以 (?< 开头,在 Python 中则以 (?P< 开头。
- “1 秒后已停止”是什么意思?
- 像 (a+)+ 这样带嵌套量词的表达式,遇到不匹配的文本时可能会尝试海量组合。请把内层写得更具体,或去掉嵌套。