1.通配符
通配符一般用于shell。
1)常用符号 []
"[]"中的字符只会匹配一个,例如:
ha[abc]llo # 可以匹配到haallo、habllo、hacllo
或者使用[a-z]这种形式,表示abcd...xyz所有小写英文字母:
ha[a-z]llo
除了[a-z]以外,还有[A-Z][0-9]等,表示一个范围,这个范围应该是根据ASCii码编号顺序来的。
如果要取反,则使用"^"或者"!",例如:
ha[^a-z]lo # [^a-z]匹配一个非小写字母的任意字符 ha[!0-9]lo # [!0-9]匹配一个非数字的任意字符
注意,如果要匹配"-",则需要转义:
ha[^a\-z]lo # [^a\-z]匹配的是非a、-、z的其他字符,这里的-不表示范围,因为被转移为普通字符"-"了
2)常用符号 ?
"?"代表一个任意字符。例如:
ab? # 只能匹配到abc、abx、ab3等,不能匹配到abcd、ab33等
ab?? # 只能匹配到ab33、abcd等,不能匹配到ab3或abcfe等
即,一个"?"表示一个任意字符,如果需要多个,则重复使用"?"。
3)常用符号 *
"*"表示任意长度的任意字符,即0个或多个任意字符。例如:
aa* # 可以匹配到aa开头的所有字符
4)几种常用字符分类符号
[[:upper:]]:匹配一个纯大写字母,相当于[A-Z] [[:lower:]]:匹配一个纯小写字母,相当于[a-z] [[:digit:]]:匹配一个纯数字,相当于[0-9] [[:alpha:]]:匹配一个字母(大小写都可以),相当于[a-zA-Z] [[:alnum:]]:匹配一个字母或数字(alpha+number),相当于[0-9a-zA-Z]
===