跳到正文

正则表达式测试

实时测试正则表达式:查看匹配结果、捕获组和替换效果

正在加载工具…

输入正则表达式和测试文本,立即高亮显示匹配结果,以及每个匹配的位置和分组值。在写进代码之前,可以用它确认表达式匹配的内容符合预期、替换结果正确。

使用方法

  1. 在“正则表达式”中输入表达式(不带斜杠),按 g、i、m 等标志按钮来打开或关闭标志。
  2. 在“测试文本”中输入文本。匹配部分会高亮显示,“匹配”标签页会列出它们的位置和分组。
  3. 在“替换”中,于“替换为”里输入 $1 等分组编号即可查看结果。“分割”显示匹配之间的各个部分。
  4. 在“常用表达式”中选一个示例,或打开“语法速查”查询符号。“复制分享链接”可以让别人打开相同的表达式和文本。

计算方式与说明

常见问题

正则为什么只匹配到第一个?
没有 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+)+ 这样带嵌套量词的表达式,遇到不匹配的文本时可能会尝试海量组合。请把内层写得更具体,或去掉嵌套。