regsub -
基於正則表示式模式匹配進行替換
regsub ?
switches?
exp string subSpec varName
這個命令針對
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 的手冊條目。
regexp(n),
re_syntax(n)
match, pattern, regular expression, substitute
寒蟬退士
2001/10/27
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh