快速開始
教學
工具與語言
範例
參考
書籍評論
替換文字教學
簡介
字元
不可列印字元
配對文字
反向參照
配對內容
大小寫轉換
條件式
本網站更多內容
簡介
正規表示式快速開始
正規表示式教學
替換字串教學
應用程式與語言
正規表示式範例
正規表示式參考
替換字串參考
書籍評論
可列印 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 會關閉大小寫轉換。您不能在 \U\L 之後使用 \u\l,除非您先使用 \E 停止序列。

當正規表示式 (?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 的替換字串大小寫轉換

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\2 將相符項目替換為 Helló Wórld

PCRE2 的替換字串大小寫轉換

PCRE2 在使用 PCRE2_SUBSTITUTE_EXTENDED 時,支援替換字串中的大小寫轉換。 \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

| 快速入門 | 教學課程 | 工具和語言 | 範例 | 參考 | 書籍評論 |

| 簡介 | 字元 | 非列印字元 | 相符文字 | 反向參照 | 相符內容 | 大小寫轉換 | 條件式 |