替换参考 |
引言 |
目录 |
字符 |
匹配文本和反向引用 |
上下文和大小写转换 |
条件 |
正则表达式参考 |
更多此类网站 |
引言 |
正则表达式快速入门 |
正则表达式教程 |
替换字符串教程 |
应用程序和语言 |
正则表达式示例 |
正则表达式参考 |
替换字符串参考 |
书籍评论 |
可打印 PDF |
关于此网站 |
RSS Feed 和博客 |
功能 | 语法 | 说明 | 示例 | JGsoft | .NET | Java | Perl | PCRE2 | PHP | Delphi | R | JavaScript | VBScript | XRegExp | Python | Ruby | std::regex | Boost | Tcl ARE | Oracle | XPath |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
和符号 | \& | 插入一个文字和符号。 | 用 \& 替换会生成 & | no | no | YES | YES | extended | no | no | YES | no | no | no | no | no | sed | YES | YES | no | error |
整个匹配 | \& | 插入整个正则表达式匹配。 | 在 1a2b 中用 [\&] 替换 \d+ 会生成 [1]a[2]b | YES | no | no | no | no | no | YES | no | no | no | no | no | YES | no | no | no | no | error |
整个匹配 | $& | 插入整个正则表达式匹配。 | 在 1a2b 中用 [$&] 替换 \d+ 会生成 [1]a[2]b | YES | YES | error | YES | error | no | YES | no | YES | YES | YES | no | no | default | all default | no | no | error |
整个匹配 | & | 插入整个正则表达式匹配。 | 在 1a2b 中用 [&] 替换 \d+ 会生成 [1]a[2]b | no | no | no | no | no | no | no | no | no | no | no | no | no | sed | sed | YES | no | no |
整个匹配 | \0 | 插入整个正则表达式匹配。 | 在 1a2b 中用 [\0] 替换 \d+ 会生成 [1]a[2]b | YES | no | no | no | no | YES | YES | no | no | no | no | no | YES | sed | sed | YES | no | error |
整个匹配 | $0 | 插入整个正则表达式匹配。 | 在 1a2b 中用 [$0] 替换 \d+ 会生成 [1]a[2]b | YES | YES | YES | error | YES | YES | YES | no | no | no | YES | no | no | default VC’08–VC’13 | all default | no | no | YES |
整个匹配 | \g<0> | 插入整个正则表达式匹配。 | 将 \d+ 替换为 [\g<0>],在 1a2b 中生成 [1]a[2]b | YES | no | no | no | no | no | no | no | no | no | no | YES | no | no | no | no | no | error |
整个匹配 | $MATCH 和 ${^MATCH} | 插入整个正则表达式匹配。 | 将 \d+ 替换为 [$MATCH],在 1a2b 中生成 [1]a[2]b | no | no | error | error | error | no | no | no | no | no | error | no | no | no | all default 1.42–1.83 | no | no | error |
反向引用 | \1 到 \9 | 插入前 9 个捕获组之一匹配的文本。 | 将 (a)(b)(c) 替换为 \3\3\1,在 abc 中生成 cca | YES | no | no | YES | no | YES | YES | YES | no | no | no | YES | YES | sed | YES | YES | YES | error |
反向引用 | \10 到 \99 | 插入捕获组 10 到 99 匹配的文本。 | YES | no | no | no | no | YES | YES | no | no | no | no | YES | no | no | no | no | no | no | |
反向引用和文字 | \10 到 \99 | 如果捕获组少于 2 位数字,则将其视为单个数字反向引用后跟一个数字文字,而不是无效的反向引用。 | 将 (a)(b)(c) 替换为 \39\38\17,在 abc 中生成 c9c8a7 | YES | 不适用 | 不适用 | 不适用 | 不适用 | no | YES | 不适用 | 不适用 | 不适用 | 不适用 | no | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 |
反向引用 | $1 到 $9 | 插入前 9 个捕获组之一匹配的文本。 | 将 (a)(b)(c) 替换为 $3$3$1,在 abc 中生成 cca | YES | YES | YES | YES | YES | YES | YES | no | YES | YES | YES | no | no | default | all default | no | no | YES |
反向引用 | $10 到 $99 | 插入捕获组 10 到 99 匹配的文本。 | YES | YES | YES | YES | YES | YES | YES | no | YES | YES | YES | no | no | default | all default | no | no | YES | |
反向引用和文字 | $10 至 $99 | 如果捕获组少于 2 位数字,则将其视为单个数字反向引用后跟一个数字文字,而不是无效的反向引用。 | 用 $39$38$17 替换 (a)(b)(c),在 abc 中得到 c9c8a7 | YES | ECMA | YES | no | no | no | YES | 不适用 | YES | YES | no | 不适用 | 不适用 | no | no | 不适用 | 不适用 | YES |
反向引用 | ${1} 至 ${99} | 插入由捕获组 1 至 99 匹配的文本。 | 用 ${3}${3}${1} 替换 (a)(b)(c),在 abc 中得到 cca | YES | YES | error | YES | YES | YES | YES | no | no | no | YES | no | no | no | all default | no | no | error |
反向引用 | \g<1> 至 \g<99> | 插入由捕获组 1 至 99 匹配的文本。 | 用 \g<3>\g<3>\g<1> 替换 (a)(b)(c),在 abc 中得到 cca | YES | no | no | no | no | no | no | no | no | no | no | YES | no | no | no | no | no | error |
命名反向引用 | ${name} | 插入由命名捕获组“name”匹配的文本。 | 用 ${two}${one} 替换 (?'one'a)(?'two'b),在 ab 中得到 ba | YES | YES | 7 | error | YES | no | YES | no | no | no | YES | no | no | no | no | no | no | error |
命名反向引用 | $+{name} | 插入由命名捕获组“name”匹配的文本。 | 用 $+{two}$+{one} 替换 (?'one'a)(?'two'b),在 ab 中得到 ba | no | no | error | 5.10 | error | no | no | no | no | no | error | no | no | no | all default 1.42–1.83 | no | no | error |
命名反向引用 | $name | 插入由命名捕获组“name”匹配的文本。 | 用 $two$one 替换 (?'one'a)(?'two'b) 中的 ab 会生成 ba | no | no | error | error | YES | no | no | no | no | no | error | no | no | no | no | no | no | error |
命名反向引用 | \g<name> | 插入由命名捕获组“name”匹配的文本。 | 用 \g<two>\g<one> 替换 (?P<one>a)(?P<two>b) 中的 ab 会生成 ba | YES | no | no | no | no | no | YES | no | no | no | no | YES | no | no | no | no | no | error |
无效的反向引用 | 任何受支持的反向引用语法 | 指示高于最高编号组的编号或不存在的组名称的反向引用将替换为空字符串。 | 仅限 V1 | no | error | YES | error | YES | YES | YES | no | no | error | error | YES | 默认 VC’08–VC’22 sed VC’15–VC’22 | YES | YES | YES | YES | |
无效的反向引用 | 任何受支持的反向引用语法 | 指示高于最高编号组的编号或不存在的组名称的反向引用将被视为按原样插入替换中的文本字面值。 | V2 错误 | YES | error | no | error | no | no | no | YES | YES | error | error | no | sed VC’08–VC’13 错误 | no | no | no | no | |
对非参与组的反向引用 | 任何受支持的反向引用语法 | 对非参与捕获组的反向引用将替换为空字符串。 | YES | YES | YES | YES | error | YES | YES | YES | YES | YES | YES | 3.5 | YES | YES | YES | YES | YES | YES | |
最后一个反向引用 | \+ | 插入与实际参与匹配的最高编号捕获组匹配的文本。 | 用 [\+] 替换 (a)(z)? 中的 ab 会生成 [a]b | YES | no | no | no | no | no | YES | no | no | no | no | no | YES | no | no | no | no | error |
最后一个反向引用 | \+ | 插入与最高编号捕获组匹配的文本,无论它是否参与匹配。 | 用 [\+] 替换 (a)(z)? 中的 ab 会生成 []b | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | error |
最后一个反向引用 | $+ | 插入与实际参与匹配的最高编号捕获组匹配的文本。 | 用 [$+] 替换 (a)(z)? 中的 ab 会生成 [a]b | YES | no | error | 5.18 | error | no | YES | no | no | no | error | no | no | no | no | no | no | error |
最后一个反向引用 | $+ | 插入与最高编号捕获组匹配的文本,无论它是否参与匹配。 | 用 [$+] 替换 (a)(z)? 中的 ab 会生成 []b | no | YES | error | 5.8–5.16 | error | no | no | no | no | YES | error | no | no | no | all default 1.42–1.83 | no | no | error |
最后一个反向引用 | $^N | 插入与实际参与匹配的最高编号捕获组匹配的文本。 | 将 (a)(z)? 替换为 [$^N],在 ab 中生成 [a]b | no | no | error | YES | error | no | no | no | no | no | error | no | no | no | all default 1.42–1.83 | no | no | error |
最后一个反向引用 | $LAST_SUBMATCH_RESULT 和 ${^LAST_SUBMATCH_RESULT} | 插入与实际参与匹配的最高编号捕获组匹配的文本。 | 将 (a)(z)? 替换为 [$LAST_SUBMATCH_RESULT],在 ab 中生成 [a]b | no | no | error | error | error | no | no | no | no | no | error | no | no | no | all default 1.42–1.83 | no | no | error |
最后一个反向引用 | $LAST_PAREN_MATCH 和 ${^LAST_PAREN_MATCH} | 插入与最高编号捕获组匹配的文本,无论它是否参与匹配。 | 将 (a)(z)? 替换为 [$LAST_PAREN_MATCH],在 ab 中生成 []b | no | no | error | error | error | no | no | no | no | no | error | no | no | no | all default 1.42–1.83 | no | no | error |
功能 | 语法 | 说明 | 示例 | JGsoft | .NET | Java | Perl | PCRE2 | PHP | Delphi | R | JavaScript | VBScript | XRegExp | Python | Ruby | std::regex | Boost | Tcl ARE | Oracle | XPath |