通配符是常用于linux shell中,而正则表达式使用范围更加广泛,一些儿shell命令也支持,比如sed、grep,awk等。 总是搞混通配符和正则表达式中的符号,毕竟他们都是同一符号只是功能不一样而已。
常见通配符及其表达意思如下:
| 通配符 | 作用 |
|---|---|
| * | 匹配任意长度的任意字符 |
| ? | 匹配任意单个字符 |
| [] | 匹配指定范围内的任意单个字符 |
| [^] | 匹配指定范围之外的任意单个字符 |
| [:space:] | 空白字符 |
| [:punct:] | 标点符号 |
| [:lower:] | 小写字母 |
| [:upper:] | 大写字母 |
| [:alpha:] | 大小写字母 |
| [:digit:] | 数字 |
| [:alnum:] | 数字和大小写字母 |
正则表达中这些常用的符号及其意义。
| 正则表达式的符号 | 作用 |
|---|---|
| * | *前的子表达式出现零次或多次。比如go*gle就可以匹配到google |
| ? | 匹配前面的子表达式零次或一次(方便记忆可以联想c中的’? :’)。 |
| [] | 字符集合,匹配集合中的任一字符 |
| [^] | 匹配任何不在指定范围内的任意字符,’[^a-z]’ 可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符 |
| + | 匹配前面的子表达式出现一次或者多次 |