shell编程:expr正则匹配心得1
从字符串“thread1.20110325.log”中取出“20110325”,也就是8位连续数字
?
?
filename="thread1.20110325.log"echo `expr "$filename" : '.*\([0-9]\{8\}\).*'`
?
其中正则为 ? ?.*\([0-9]\{8\}\).*
?
注意两侧的 .*?:
1. 如果左边没有 .*?则相当于有?^?,也就是相当于开头必须为数字
2. 如果右边没有?.*?则相当于有?$?,也就是相当于结尾必须为数字
?
这两点与我们平常用的正则不一样,不注意就匹配不上