正则表达式测试

在线测试正则表达式,实时高亮匹配结果,列出捕获组,并可预览替换效果。使用 JavaScript 正则引擎。

正则表达式
匹配结果

如何测试正则表达式

  1. 在两个斜杠之间输入正则表达式,不要自己再加斜杠。
  2. 选择标志,例如 g(查找所有匹配项)或 i(忽略大小写)。
  3. 粘贴要搜索的文本。匹配项会随着输入高亮显示,表格会列出每个匹配项及其位置和捕获组。
  4. 还可以输入替换内容,预览查找替换的结果。

本工具使用浏览器的 JavaScript 正则引擎,因此结果与 JavaScript 和 TypeScript 中 String.match、matchAll 和 replace 的行为完全一致。大部分语法在 Python、PHP、Java 和 C# 中也相同,但后行断言、命名分组和 Unicode 字符类可能略有差异。

正则表达式速查表

.除换行符以外的任意字符
\d \w \s数字、单词字符(字母、数字、_)、空白字符
\D \W \S非数字、非单词字符、非空白字符
[abc] [^abc] [a-z]a、b、c 中的一个 · 除 a、b、c 以外的任意字符 · 一个范围
* + ?0 次或多次 · 1 次或多次 · 0 次或 1 次
{3} {2,5}正好 3 次 · 2 到 5 次
^ $ \b开头 · 结尾 · 单词边界
(…) (?:…) (?<name>…)捕获组 · 非捕获组 · 命名分组
a|ba 或 b
(?=…) (?!…)后面紧跟 · 后面不紧跟
\p{L}任何语言中的任意字母(需要 u 标志)

常见问题

为什么某些正则表达式会让页面卡住?

带有嵌套重复的正则表达式(例如 (a+)+$)在某些输入上可能需要极长的时间(即“灾难性回溯”)。把重复的分组写得更具体一些,就能避免这种情况。