. .
regsub - 基於正規表示式模式匹配完成替換操作regsub?
switches?
exp string subspec ?
varname?
這個命令對
string進行正則表達匹配,然後把字串拷貝進入
varname中,如果沒有
varname則將字串返回。(正規表示式語法匹配描述在re_syntax中。)如果匹配成功,就把匹配的部分換成
subspec後再拷貝到
varname中,如果
subspec包含"&"和"/0",將會替換為匹配的字串,如果包含"/n"將被替換為字模式匹配的字串,多新增乙個反斜槓將會阻止解釋其去解釋"&"、"/0"、"/n"和"/",為了防止這些情況發生,把
subspec放入花括號中會更加安全。
如果緊接著regexp的第乙個變元以-開頭,那麼就會被當作可選項來處理,可以使用的選項如下:
-all
在字串中符合使正規表示式的部分全部被匹配並且全部會被替換,沒有這個可選項就只有第乙個匹配的字串會被替換。在-all選項下,所有匹配的字串都會分別根據匹配情況進行"&"和"/n"的替代。
-expanded
使正規表示式使用擴充套件語法,空格鍵和注釋會被忽略,與指定了(?x)嵌入選項相同(參見re_syntax幫助手冊)。
-line
換行符敏感。換行符是字串的結束符,如果使用了這個標誌位,[^和.不會匹配換行符,如果有換行,那麼^和$匹配乙個空字串,這個標誌為相當於同時指定了-linestop和-lineanchor,與(?n)嵌入選項相同(參見re_syntax幫助手冊)。
-linestop
使[^和.不會匹配換行符,與(?p)嵌入選項相同(參見re_syntax幫助手冊)。
-lineanchor
使^和$的行為改變為面向行的方式,與(?w)嵌入選項相同(參見re_syntax幫助手冊)。
-nocase
是大寫字母也被當作小寫來處理,相當於不區分大小寫字元。
-startindex
指定了開始匹配的索引位置,當使用了這個可選項,^不會從字串的開頭匹配,而是從指定的索引位置開始匹配。
--
指示可選項的結束,這個可選項主要用於
exp以-開頭的時候。
使用bar替代字串中所有的foo:
regsub-all $string bar string使用雙引號把匹配的字串括起來:
regsub-nocase $string string通過regsub和subst命令把所有非ascii和tcl特殊意義的字元使用/u轉義:
# 這個正規表示式是所有「非法」字元的字符集set re ;#///$/s/u0100-/uffff]}
# 替換乙個中括號中的tcl命令
set substitution
# 將命令傳給subst使format命令得到替換
set quoted [subst [regsub-all $re $string $substitution]]
《C語言及程式設計》實踐參考 字串處理函式
返回 賀老師課程教學鏈結 實踐要求 專案4 字串處理函式 指標是神奇的,指向整型的指標int p1,可以操作整型陣列int a 指向字元型的指標char p2,可以操作字元陣列 字串 char str 更靈活的是,在函式的傳遞中,指標 陣列名在一定程度上可以互換。請編制函式,對字串的進行各種操作。序...
2014秋C 第13周專案5參考 字串操作
課程主頁在 課程資源在 雲學堂 賀老師課堂 同步展示,使用的帳號請到課程主頁中檢視。專案5 字串操作 1 閱讀下面的程式,完成類似的字元統計功能 include includeusing namespace std int main cout include includeusing namespa...
字串操作 靠字串分割字串
字串分解函式。注意strtok比較複雜。要妥善運用!也可以不用strtok函式,但要實現字串靠字串分割比較困難!注意str指向的空間必須是可讀可寫的 如陣列或動態分配的空間 不能為字串常量的指標,因為strtok改變了其中的內容。include include 功能 將str中的字串按照elemon...