正则表达式分为基本正则表达式和扩展正则表达式(BRE和ERE)
基本正则表达式: ^ $ . [] *
扩展正则表达式: () {} ? + |
普通正则表达式:
符号 | 作用 |
^ | 匹配以什么开头的字符,如^hh,则是匹配以hh开头的行 |
$ | 匹配以什么结尾的字符,如hh$,则是匹配以hh结尾的行 |
^$ | 组合匹配符,表示匹配空行 |
. | 匹配任意一个字符,但不能匹配空行 |
\ | 转义字符,类似于编程语言取消特殊含义 |
* | 匹配前面一个字符0次或多次,表示匹配所有 |
.* | 匹配任意长度的任意字符 |
^.* | 匹配多个字符开头的内容 |
.*$ | 匹配多个字符结尾的内容 |
[abc] | 匹配[]内的任意一个字符,可能是a,b,c |
[^abc] | 取反匹配其中的任意一个字符,不是a,b,c |
扩展正则表达式:(需要增加 -E的参数)
字符 | 说明 |
+ | 匹配前一个字符1次或多次(前面字符至少出现一次) |
[:/] | 括号内的字符至少出现一次(":"和"/") |
? | 前一个字符出现0次或1次(可有可无) |
X|Y | 或者,过滤匹配X和Y |
() | 表示括号内为一个整体 |
X{m,n} | 表示匹配前面的字符X,最少m,最多n次 |
X{,m} | 表示匹配前面的字符X,最多n次 |
X{n,} | 表示匹配前面的字符X,最少n次 |
X{m} | 表示匹配前面的字符X,正好m次 |