正则表达式由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
| vim元字符 | grep 元字符 | 说明 |
| ^ | ^ | 匹配输入字符串的开始位置 |
| $ | $ | 匹配输入字符串的开始位置 |
| * | * | 匹配前面的子表达式0次或n次(n>0) |
| + | + | 匹配前面的子表达式1次或n次(n>1) |
| ? | ? | 匹配前面的子表达式0次或1次 |
| {n} |
{n} |
匹配确定的 n 次(n>=0) |
| {n,} | {n,} | 最少匹配n 次(∞>n>=0) |
| {n,m} | {n,m} | 最少匹配 n 次且最多匹配 m 次(n<m) |
| < | < | 匹配单词词首 |
| > | > | 匹配单词词尾 |
| | | 或字符,如:x|y 匹配x或者y | |
| [abc] | [abc] | 字符集合。匹配所包含的任意一个字符 |
| [^abc] | [^abc] | 表示匹配除方括号中字符之外的任意字符。 |
| [a-z] | [a-z] | 字符范围,匹配a-z任意字符 |
| [^a-z] | [^a-z] | 表示匹配除方括号中a-z字符之外的任意字符。 |
| d | ----------- | 匹配一个数字字符。等价于 [0-9] |
| D | ----------- | 匹配非数字字符 |
| w | w | 匹配0-9,A-Z,a-z |
| W | W | 匹配非0-9,A-Z,a-z |