| 正则表达式参考 |
| 简介 |
| 目录 |
| 快速参考 |
| 字符 |
| 基本功能 |
| 字符类 |
| 速记 |
| 锚点 |
| 词边界 |
| 量词 |
| Unicode |
| 捕获组和反向引用 |
| 命名组和反向引用 |
| 特殊组 |
| 模式修饰符 |
| 递归和平衡组 |
| 替换参考 |
| 字符 |
| 匹配文本和反向引用 |
| 上下文和大小写转换 |
| 条件 |
| 本网站更多内容 |
| 简介 |
| 正则表达式快速入门 |
| 正则表达式教程 |
| 替换字符串教程 |
| 应用程序和语言 |
| 正则表达式示例 |
| 正则表达式参考 |
| 替换字符串参考 |
| 书籍评论 |
| 可打印 PDF |
| 关于本网站 |
| RSS 源和博客 |
| 功能 | 语法 | 说明 | 示例 | JGsoft | .NET | Java | Perl | PCRE | PCRE2 | PHP | Delphi | R | JavaScript | VBScript | XRegExp | Python | Ruby | std::regex | Boost | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | Oracle | XML | XPath |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 捕获组 | (regex) | 括号将括号之间的正则表达式分组。它们将括号内正则表达式匹配的文本捕获到一个编号组中,该组可以使用编号反向引用重复使用。它们允许你将正则表达式运算符应用于整个分组正则表达式。 | (abc){3} 匹配 abcabcabc。第一个组匹配 abc。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA 扩展 egrep awk | ECMA 扩展 egrep awk | 是 | 否 | 是 | 否 | 是 | 是 | 是 | 是 |
| 捕获组 | \(regex\) | 转义括号对括号之间的正则表达式进行分组。它们捕获括号内正则表达式匹配的文本到一个编号组中,该组可以使用编号反向引用进行重用。它们允许你对整个分组正则表达式应用正则表达式运算符。 | \(abc\){3} 匹配 abcabcabc。第一个组匹配 abc。 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 基本 grep | 基本 grep | 否 | 是 | 否 | 是 | 否 | 否 | 否 | 否 |
| 非捕获组 | (?:regex) | 非捕获括号对正则表达式进行分组,以便你可以应用正则表达式运算符,但不会捕获任何内容。 | (?:abc){3} 匹配 abcabcabc。没有组。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA | ECMA | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 是 |
| 反向引用 | \1 到 \9 | 用第 1 到第 9 个编号捕获组之间匹配的文本替换。 | (abc|def)=\1 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA 基本 grep | ECMA 基本 grep | 是 | 是 | 否 | 是 | 是 | 是 | 否 | 是 |
| 反向引用 | \10 到 \99 | 用第 10 到第 99 个编号捕获组之间匹配的文本替换。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ECMA | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | |
| 反向引用 | \k<1> 到 \k<99> | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=\k<1> 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 1.9 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用 | \k'1' 到 \k'99' | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=\k'1' 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用 | \g1 到 \g99 | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=\g1 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 否 | 否 | 否 | 5.10 | 7.0 | 是 | 5.2.2 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.42–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用 | \g{1} 到 \g{99} | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=\g{1} 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 否 | 否 | 否 | 5.10 | 7.0 | 是 | 5.2.2 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.42–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用 | \g<1> 到 \g<99> | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=\g<1> 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用 | \g'1' 到 \g'99' | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=\g'1' 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用 | (?P=1) 到 (?P=99) | 用第 1 到第 99 个编号捕获组之间匹配的文本替换。 | (abc|def)=(?P=1) 匹配 abc=abc 或 def=def,但不匹配 abc=def 或 def=abc。 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 相对反向引用 | \k<-1>、\k<-2> 等 | 用指定组的匹配文本替换,该组可通过从右至左从反向引用开始,按指定编号计算命名或编号捕获组的左括号数量来找到。 | (a)(b)(c)(d)\k<-3> 匹配 abcdb。 | V2 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 相对反向引用 | \k'-1'、\k'-2' 等 | 用指定组的匹配文本替换,该组可通过从右至左从反向引用开始,按指定编号计算命名或编号捕获组的左括号数量来找到。 | (a)(b)(c)(d)\k'-3' 匹配 abcdb。 | V2 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 1.9 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 相对反向引用 | \g-1、\g-2 等 | 用指定组的匹配文本替换,该组可通过从右至左从反向引用开始,按指定编号计算命名或编号捕获组的左括号数量来找到。 | (a)(b)(c)(d)\g-3 匹配 abcdb。 | 否 | 否 | 否 | 5.10 | 7.0 | 是 | 5.2.2 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.42–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 相对反向引用 | \g{-1}、\g{-2} 等 | 用指定组的匹配文本替换,该组可通过从右至左从反向引用开始,按指定编号计算命名或编号捕获组的左括号数量来找到。 | (a)(b)(c)(d)\g{-3} 匹配 abcdb。 | 否 | 否 | 否 | 5.10 | 7.0 | 是 | 5.2.2 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.42–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 相对反向引用 | \g<-1>、\g<-2> 等 | 用指定组的匹配文本替换,该组可通过从右至左从反向引用开始,按指定编号计算命名或编号捕获组的左括号数量来找到。 | (a)(b)(c)(d)\g<-3> 匹配 abcdb。 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 相对反向引用 | \g'-1'、\g'-2' 等 | 用指定组的匹配文本替换,该组可通过从右至左从反向引用开始,按指定编号计算命名或编号捕获组的左括号数量来找到。 | (a)(b)(c)(d)\g'-3' 匹配 abcdb。 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | ECMA 1.47–1.83 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
| 反向引用失败 | 任何编号反向引用 | 未参与匹配尝试的分组的反向引用匹配失败。 | (a)?\1 匹配 aa,但无法匹配 b。 | 是 | 非 ECMA | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 忽略 | 忽略 | 忽略 | 是 | 是 | ECMA 基本 grep 忽略 | ECMA 1.47–1.83 | 是 | 是 | 不适用 | 是 | 是 | 是 | 不适用 | 忽略 |
| 无效反向引用 | 任何编号反向引用 | 对根本不存在的分组的反向引用有效,但无法匹配任何内容。 | (a)?\2|b 在 aab 中匹配 b。 | 错误 | 错误 | 是 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 错误 | 仅限 1.8 | ECMA 基本 grep 错误 | ECMA 基本 grep 错误 | 错误 | 错误 | 不适用 | 错误 | 错误 | 错误 | 不适用 | 错误 |
| 嵌套反向引用 | 任何编号反向引用 | 反向引用可以在其引用的分组内使用。 | (a\1?){3} 匹配 aaaaaa。 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 忽略 | 是 | 忽略 | 错误 | 失败 | ECMA 基本 grep 错误 | ECMA 1.78–1.83 失败 | 错误 | 错误 | 不适用 | 错误 | 错误 | 错误 | 不适用 | 错误 |
| 前向引用 | 任何编号反向引用 | 反向引用可以在其引用的分组之前使用。 | (\2?(a)){3} 匹配 aaaaaa。 | 是 | 非 ECMA | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 忽略 | 错误 | 错误 | 错误 | 是 | ECMA 基本 grep 错误 | ECMA 1.78–1.83 | 错误 | 错误 | 不适用 | 错误 | 错误 | 错误 | 不适用 | 错误 |
| 功能 | 语法 | 说明 | 示例 | JGsoft | .NET | Java | Perl | PCRE | PCRE2 | PHP | Delphi | R | JavaScript | VBScript | XRegExp | Python | Ruby | std::regex | Boost | Tcl ARE | POSIX BRE | POSIX ERE | GNU BRE | GNU ERE | Oracle | XML | XPath |