Scroll to navigation

regsub(3tcl) Tcl Built-In Commands regsub(3tcl)


NAME

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

總覽 SYNOPSIS

regsub ?switches? exp string subSpec varName


描述 DESCRIPTION

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

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

找到 string 中匹配 exp 的所有範圍,並對每個範圍進行替換。沒有這個選項,則只有第一個匹配的範圍被找到並替換。如果指定了 -all,則對於每次替換使用相應的匹配資訊來處理``&''和``\n''序列。
啟用展開的(expanded)正則表示式語法,將忽略白空格和註釋。這與指定 (?x) 嵌入選項相同。 (see METASYNTAX, below).
啟用換行敏感匹配。預設的,換行是沒有特殊意義的一個完全的普通字元。加上了這個標誌,‘[^’ 方括號表示式和‘.’將永不匹配換行,‘^’除了它的正常功能之外還匹配在任何換行之後的空串,而‘$’除了它的正常功能之外還匹配在任何換行之前的空串。這個標誌等價於指定 -linestop-lineanchor 二者,或者 (?n) 嵌入選項。 (see METASYNTAX, below).
改變‘[^’方括號表示式和‘.’的行為,這樣表示式將停止於換行。這與指定 (?p) 嵌入選項相同。(see METASYNTAX, below).
改變‘^’和‘$’(“錨”)的行為,這樣它們分別的匹配一行的開始和結束。這與指定 (?w) 嵌入選項相同。 (see METASYNTAX, below).
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.
在字串中指定一個字元索引,在這個偏移量上開始匹配。當使用了這個開關的時候,‘^’將不匹配行的開始,而 \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

8.3 Tcl