table of contents
regsub(3tcl) | Tcl Built-In Commands | 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 手冊頁翻譯計劃》:¶
跋¶
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
8.3 | Tcl |