2022年的 Tcl/Tk 編程入門參考 13.二次替換
TCL語(yǔ)言的語(yǔ)法里非常重要的就是替換功能,并且之前也介紹過,從左向右進(jìn)行一次的替換操作。
subst 命令的作用就是在TCL語(yǔ)言替換完畢之后,再對(duì)字符串進(jìn)行一次替換。
用法:subst ?-nobackslashes? ?-nocommands? ?-novariables? 字符串
關(guān)于二次替換的用途,我在官方社區(qū)里找到了一個(gè)不錯(cuò)的例子:一段HTML代碼(網(wǎng)頁(yè)代碼)在代碼里包含變量名并用大括號(hào)括起來。在后續(xù)的代碼里對(duì)變量進(jìn)行設(shè)定,之后,對(duì)HTML代碼進(jìn)行二次替換,得到最終的網(wǎng)頁(yè)代碼。這相當(dāng)于通過二次替換實(shí)現(xiàn)了簡(jiǎn)單的網(wǎng)頁(yè)模板功能。
此外該命令有三個(gè)可選參數(shù),用于調(diào)整替換規(guī)則。因?yàn)樵诖罄ㄌ?hào)中的內(nèi)容可以規(guī)避語(yǔ)法替換(即第一次替換),所以subst也可以用于有特殊需求、需要規(guī)避某些替換規(guī)則的情況。
?
此外,該命令有一些特殊情況需要注意:
多重大括號(hào)里的內(nèi)容依然會(huì)被替換
涉及其它替換類型時(shí),可選參數(shù)功能會(huì)失效
?
該命令還有更多用法,請(qǐng)參考官方文檔。
雖然只是多加了一次替換,但可以玩出很多花樣,請(qǐng)?jiān)诖a中"直觀"的使用該功能。
標(biāo)簽: