我想從Tcl中的字符串中提取子串。我編寫了代碼並能夠做到,但我想知道是否還有其他有效的方法來執行此操作。所以確切的問題是我有一個字符串如何在tcl中執行子串提取和替換
name_ext_10a.string_10a.string.string.string
,我想提取「name_ext
」,然後刪除「_
」,並以「.
」代替;我最終希望輸出爲「name.ext
」。我寫的是這樣的:
set _File "[string replace $_File [string last "_" $_File] [string length $_File] "" ]"
set _File "[string replace $_File [string last "_" $_File] [string length $_File] "" ]"
set _File "[string replace $_File [string last "_" $_File] [string last "_" $_File] "." ]"
這給我確切的輸出我想要的,但我想知道如果在Tcl的做到這一點任何其他有效的方式。
是的,但問題是字符串「名稱」本身可以有任何數目的下劃線。所以不會改變的是「_ext_10a.str_10a.str.str.str.str」模式。所以這就是爲什麼我試圖用空字符串替換最後兩個下劃線後的字符串,這樣我就會得到「name_ext」,而不是用點來改變最後一個下劃線。 –
@PuneetMittal,答案已更新。 –