所謂字符串匹配是指檢測(cè)待測(cè)字符串(也可稱(chēng)為目標(biāo)字符串)是否與給定的模式相匹配。這里的模式其實(shí)也是字符串。Tcl提供了兩種字符串匹配方法:一種為通配符模式,一種為正則表達(dá)式。這里先介紹較為簡(jiǎn)單易用的通配符匹配模式。這時(shí)要用到命令string match。該命令需要接受兩個(gè)參數(shù),一個(gè)是匹配模式,一個(gè)是待測(cè)字符串。若兩者匹配則返回1,否則返回0。string match可支持的模式如下圖所示。
案例1:使用*匹配
案例2:使用?匹配
這里可以看到如果需要匹配兩個(gè)字符,就要使用兩個(gè)?,即代碼種的“??”。
案例3:使用[]匹配
案例4:較為復(fù)雜的[]匹配
這里可以看到[a-z0-9]和[a-z][0-9]是不同的,前者匹配一個(gè)字符,后者匹配兩個(gè)字符,其種一個(gè)為字母,另一個(gè)為數(shù)字,所以字符串9s與[a-z0-9]*匹配,但與[a-z][0-9]*不匹配。這里模式字符串要用花括號(hào){}括起來(lái),否則Tcl解釋器看到[]會(huì)認(rèn)為是嵌套命令,從而報(bào)錯(cuò)。
案例5:匹配特殊字符
案例6:較為復(fù)雜的特殊字符匹配
這里通過(guò)匹配特殊字符[],通過(guò)[0-9]匹配數(shù)字。
也可以把模式字符串設(shè)置為變量。此時(shí)如果使用了[]匹配,一定要用{}以阻止命令置換。
string match還有提供了選項(xiàng)-nocase,指定匹配時(shí)不區(qū)分大小寫(xiě)。
結(jié)論:
-string match用于字符串匹配,可提供* ? [] 四種匹配模式
-最好用花括號(hào){}把模式字符串括起來(lái)
-
TCL
+關(guān)注
關(guān)注
10文章
1761瀏覽量
89147 -
字符串
+關(guān)注
關(guān)注
1文章
587瀏覽量
20696
原文標(biāo)題:Tcl的字符串操作:字符串匹配
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
字符串的表示

Tcl學(xué)習(xí)之如何獲取字符?
LabVIEW的常用字符串操作教程免費(fèi)下載

評(píng)論