regsub(3tcl)

NAME
regsub - 基於正則表示式模式匹配進行替換

總覽 SYNOPSIS
regsub ?switches? exp string subSpec varName

描述 DESCRIPTION

這個命令針對 string 匹配正則表示式 exp，並且它把 string 複製到用 varName 給出名字的變數中。(正則表示式匹配的描述請參見 re_syntax 參考頁。)如果有一個匹配，則在複製 string 到 varName 期間，string 中匹配 exp 的那部分將被替代為 subSpec。如果 subSpec 包含一個``&''或``\0''，則在這個替換中它被替代為 string 中匹配 exp 的那部分。如果 subSpec 包含一個``\n''，這裡的 n 是在 1 和 9 之間的一個數字，則在這個替換中它將被替代為 string 中匹配第 n 個圓括號中的子表示式 exp 的那部分。 在 subSpec 中可以使用額外的反斜槓來防對``&''、``\0''、``\n''或反斜槓的特殊解釋。在 subSpec 中使用的反斜槓可能與 Tcl 分析器使用的反斜槓有所衝突。所以，如果 subSpec 中包含反斜槓，最安全的方式通常是把 subSpec 包圍在花括號中。

如果給 regexp 的初始的引數以 - 為開始，則它們被作為開關來對待。當前支援下列開關:

-all
    找到 string 中匹配 exp 的所有範圍，並對每個範圍進行替換。沒有這個選項，則只有第一個匹配的範圍被找到並替換。如果指定了 -all，則對於每次替換使用相應的匹配資訊來處理``&''和``\n''序列。

-expanded
    啟用展開的(expanded)正則表示式語法，將忽略白空格和註釋。這與指定 (?x) 嵌入選項相同。 (see METASYNTAX, below).

-line
    啟用換行敏感匹配。預設的，換行是沒有特殊意義的一個完全的普通字元。加上了這個標誌，‘[^’ 方括號表示式和‘.’將永不匹配換行，‘^’除了它的正常功能之外還匹配在任何換行之後的空串，而‘$’除了它的正常功能之外還匹配在任何換行之前的空串。這個標誌等價於指定 -linestop 和 -lineanchor 二者，或者 (?n) 嵌入選項。 (see METASYNTAX, below).

-linestop
    改變‘[^’方括號表示式和‘.’的行為，這樣表示式將停止於換行。這與指定 (?p) 嵌入選項相同。(see METASYNTAX, below).

-lineanchor
    改變‘^’和‘$’(“錨”)的行為，這樣它們分別的匹配一行的開始和結束。這與指定 (?w) 嵌入選項相同。 (see METASYNTAX, below).

-nocase
    Upper-case characters in string will be converted to lower-case before matching against exp; however, substitutions specified by subSpec use the original unconverted form of string.

-start index
    在字串中指定一個字元索引，在這個偏移量上開始匹配。當使用了這個開關的時候，‘^’將不匹配行的開始，而 \A 將仍舊在 index 上匹配字串的開始。index 將被約束為輸入字串的束縛。

--  標記開關的結束。這個標誌之後的引數即使以 - 為開始仍被作為 exp 對待。

這個命令返回找到並替換的匹配範圍的總數。正則表示式的解釋詳見 regexp 的手冊條目。

參見 SEE ALSO
regexp(n), re_syntax(n)

關鍵字 KEYWORDS
match, pattern, regular expression, substitute

[中文版維護人]
寒蟬退士

[中文版最新更新]
2001/10/27

《中國 Linux 論壇 man 手冊頁翻譯計劃》:
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh