
Tcl的字符串操作:字符串匹配
所谓字符串匹配是指检测待测字符串(也可称为⽬标字符串)是否与给定的模式相匹配。这⾥的模式其实也是字符串;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:较为复杂的特殊字符匹配
也可以把模式字符串设置为变量。此时如果使⽤了[]匹配,⼀定要⽤{}以阻⽌命令置换;
string match还有提供了选项-nocase,指定匹配时不区分⼤⼩写;
结论:
-string match⽤于字符串匹配,可提供* ? [] \四种匹配模式
-最好⽤花括号{}把模式字符串括起来
更多推荐
匹配,字符串,模式,命令,需要,提供,看到
发布评论