快速开始
教程
工具和语言
示例
参考
书评
替换文本教程
简介
字符
不可打印字符
匹配文本
反向引用
匹配上下文
大小写转换
条件
本网站上的更多内容
简介
正则表达式快速入门
正则表达式教程
替换字符串教程
应用程序和语言
正则表达式示例
正则表达式参考
替换字符串参考
书评
可打印 PDF
关于本网站
RSS Feed 和博客

替换文本大小写转换

一些应用程序可以插入由正则表达式匹配的文本,或插入已转换为大写或小写的捕获组。 Just Great Software 应用程序 允许您在 匹配文本标记 \0反向引用 \1\99 前加上一个字母,以更改插入文本的大小写。 U 表示大写,L 表示小写,I 表示首字母大写(每个单词的第一个字母大写,其余字母小写),F 表示第一个字母大写(插入文本中的第一个字母大写,其余字母小写)。该字母仅影响其所属的反向引用的大小写。

当正则表达式 (?i)(Helló) (Wórld) 匹配 HeLlÓ WóRlD 时,替换文本 \U1 \L2 \I0 \F0 变成 HELLÓ wórld Helló Wórld Helló wórld

正则表达式和替换文本中的 Perl 字符串功能

Perl 中正则表达式和替换文本的双斜杠和三斜杠表示法支持双引号字符串的所有功能。最明显的是变量内插。您只需在替换文本中使用正则表达式相关的变量,即可插入由正则表达式或捕获组匹配的文本。

Perl 的大小写转换转义字符也适用于替换文本。最常见的用法是更改内插变量的大小写。 \U 将所有内容转换为大写,直到遇到下一个 \L\E\L 将所有内容转换为小写,直到遇到下一个 \U\E\u 将下一个字符转换为大写。 \l 将下一个字符转换为小写。您可以将它们组合成 \l\U,以将第一个字符转换为小写,并将其余字符转换为大写,或 \u\L,以将第一个字符转换为大写,并将其余字符转换为小写。 \E 关闭大小写转换。在您使用 \E 停止序列之前,您不能在 \U\L 之后使用 \u\l

当正则表达式 (?i)(helló) (wórld) 匹配 HeLlÓ WóRlD 时,替换文本 \U\l$1\E \L\u$2 将变为 hELLÓ Wórld。文本原义也会受到影响。 \U$1 Dear $2 将变为 HELLÓ DEAR WÓRLD

Perl 的大小写转换也适用于正则表达式。但它不会按照你预期的方式工作。Perl 在脚本中解析字符串并内插变量时应用大小写转换。这对于替换文本中的反向引用非常有用,因为它们实际上是 Perl 中的内插变量。但正则表达式中的反向引用是正则表达式标记,而不是变量。 (?-i)(a)\U\1 匹配 aa 但不匹配 aA\1 在解析正则表达式时转换为大写,而不是在匹配过程中。由于 \1 不包含任何字母,因此这不会产生任何效果。在正则表达式 \U\w 中, \w 在解析正则表达式时转换为大写。这意味着 \U\w\W 相同,后者匹配任何非单词字符。

Boost 的替换字符串大小写转换

使用默认替换格式或“all”替换格式时,Boost 支持替换字符串中的大小写转换。 \U 将所有内容转换为大写,直到下一个 \L\E\L 将所有内容转换为小写,直到下一个 \U\E\u 将下一个字符转换为大写。 \l 将下一个字符转换为小写。 \E 关闭大小写转换。与 Perl 一样,大小写转换会影响替换字符串中的文本原义和反向引用插入的文本。

Boost 与 Perl 的不同之处在于,组合这些操作需要反过来进行。 \U\l 将第一个字符转换为小写,其余字符转换为大写。 \L\u 将第一个字符转换为大写,其余字符转换为小写。Boost 还允许在 \U 序列中使用 \l,在 \L 序列中使用 \u。因此,当 (?i)(helló) (wórld) 匹配 HeLlÓ WóRlD 时,你可以使用 \L\u\1 \u\2Helló Wórld 替换匹配项。

PCRE2 的替换字符串大小写转换

使用 PCRE2_SUBSTITUTE_EXTENDED 时,PCRE2 支持替换字符串中的大小写转换。 \U 将其后所有内容转换为大写。 \L 将其后所有内容转换为小写。 \u 将下一个字符转换为大写。 \l 将下一个字符转换为小写。 \E 关闭大小写转换。与 Perl 中一样,大小写转换会影响替换字符串中的文本文字和由反向引用插入的文本。

与 Perl 不同,在 PCRE2 中,\U\L\u\l 都会停止任何前置大小写转换。因此,例如,你无法组合 \L\u,以使第一个字符大写,其余字符小写。 \L\u 使第一个字符大写,其余字符保持不变,就像 \u 一样。 \u\L 使所有字符小写,就像 \L 一样。

在 PCRE2 中,大小写转换会贯穿 条件。条件之前生效的任何大小写转换也适用于条件。如果条件在其实际使用的部分包含自己的大小写转换转义符,则这些转义符在条件之后仍然有效。因此,你可以使用 ${1:+\U:\L}${2},如果第一个组参与,则以大写插入与第二个捕获组匹配的文本,如果它不参与,则以小写插入。

R 的反向引用大小写转换

R 中的 sub()gsub() 函数支持受 Perl 字符串启发的大小写转换转义符。 \U 将所有反向引用转换为大写,直到下一个 \L\E\L 将所有反向引用转换为小写,直到下一个 \U\E\E 关闭大小写转换。

当正则表达式 (?i)(Helló) (Wórld) 匹配 HeLlÓ WóRlD 时,替换字符串 \U$1 \L$2 变成 HELLÓ wórld。文本文字不受影响。 \U$1 Dear $2 变成 HELLÓ Dear WÓRLD

| 快速入门 | 教程 | 工具和语言 | 示例 | 参考 | 书籍评论 |

| 简介 | 字符 | 不可打印字符 | 匹配文本 | 反向引用 | 匹配上下文 | 大小写转换 | 条件 |