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