ZH
我的工具

正则表达式速查表

可搜索的正则表达式速查表:锚点、字符类、量词、分组、环视、标志和替换语法,每一项都附有实时示例。

按标记、含义或各语言的注意事项进行筛选。
可选。使用浏览器的 JavaScript 引擎,对下面的文本运行。
始终列出全部匹配(相当于已启用 g)。
我的工具 →
广告

一份可筛选、可测试的简明正则表达式参考。每个条目都有简短的说明和示例,结果一列由你的浏览器正则引擎实时生成,所以你看到的是每个示例实际匹配的内容,而不是静态图表上的说法。其中也标出了 JavaScript、Python、PHP(PCRE)、Java 和 .NET 之间的差异——这正是同一个正则在一种语言中可用、在另一种语言中失败的常见原因。

使用方法

  1. 选择一个分类,如“量词”或“先行断言与后行断言”,也可以保持“全部”。
  2. 在搜索框中输入关键词进行筛选,例如 "lazy"、"named" 或 "boundary"。
  3. 查看每个标记的示例和实时结果。
  4. 点击“计算”。可以在表格下方的输入框中输入你自己的正则和文本,立即验证想法。

计算公式

每个示例都以 new RegExp(pattern, flags + "g") 对其样本文本运行;替换示例使用 text.replace(regex, replacement)。

标有“JavaScript 中不可用”的条目(占有量词、原子组、\A 和 \z、POSIX 字符类、详细模式、内联标志)在其他引擎中存在,但无法在浏览器中实时演示。计算在 Worker 中运行,两秒后停止。

示例

在“量词”分类中,懒惰示例 /<.+?>/ 作用于 "<b>bold</b>" 会返回两个匹配:"<b>" 和 "</b>",而贪婪的 <.+> 会吞掉整个字符串。在试用框中,\b\d{3}-\d{4}\b 作用于 "Call 555-1234 or 555-98765 today." 找到 1 个匹配:555-1234——第二个号码匹配失败,因为 \b 不能位于两个数字之间。

常见问题

贪婪量词和懒惰量词有什么区别?

贪婪量词(*、+、{n,m})会尽可能多地取文本,只有当正则的其余部分失败时才退回。加上 ?(*?、+?)后它们会尽可能少取,这通常正是你在引号或标签这类分隔符之间想要的。

为什么我的后行断言在 JavaScript 中可用,在 Python 中却失败?

Python 的 re 模块要求所有后行断言长度固定,所以 (?<=\$\d*) 会被拒绝。JavaScript 和 .NET 接受可变长度的后行断言。

\w 能匹配带重音的字母吗?

JavaScript 的 \w 主要匹配 ASCII 字母、数字和下划线。同时使用 Unicode 和忽略大小写标志时,K 和 ſ 这类折叠为 ASCII 的字符也会匹配。要匹配 Unicode 字母,请用 \p{L} 并加上 u 标志。

哪些字符必须转义?

在方括号之外:. * + ? ^ $ { } ( ) | [ ] 以及反斜杠本身。在方括号之内,只有 ]、\、开头的 ^ 以及字符之间的 - 是特殊的。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 正则表达式速查表. https://kakao.mobile/zh/tools/regex-cheat-sheet/

MLA

“正则表达式速查表.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/regex-cheat-sheet/.

广告