Glob模式
在编程中匹配字符最常见的工具是正则表达式,此外还有一种 glob 模式经常用于匹配文件路径,glob 模式在某些方面与正则表达式功能相同,但是他们各自有着不同的语法和约定。
-
在模式字符串中,
*匹配任何字符序列,?匹配任何单个字符,[SET]匹配指定集中的任何单个字符,[!SET]匹配不在指定集中的任何字符。 -
集合由字符或范围组成;范围看起来像字符连字符(如 0-9 或 AZ)。
[0-9a-zA-Z_]是 C 标识符中允许的字符集。模式中的任何其他字符都必须完全匹配。
*要抑制任何[]*?!-的特殊语法意义并精确匹配该字符,请在其前面添加反斜杠。
示例
通配符 | 描述 | 示例 | 匹配 | 不匹配 |
|---|---|---|---|---|
| * | 匹配0个或多个字符,包含空串 | Law* | Law, Laws和Lawer | La, aw |
| ? | 匹配1个字符 | ?at | cat, bat | at |
| [abc] | 匹配括号内字符集合中的单个字符 | [cb]at | cat, bat | at, bcat |
| [a-z] | 匹配括号内字符范围中的单个字符 | [a-z]ata | at, bat, zat | at, bcat, Bat |
| [^abc]或[!abc] | 匹配非括号内字符集合中的单个字符 | [!CB]at | cat, bat | Cat, Bat |
| [^a-z]或[!a-z] | 匹配非括号内字符范围中的单个字符 | [!A-Z]at | aat, bat, zat | Aat, Bat, Zat |