正则表达式的基本元素包括普通字符和元字符。元字符是掌握正则表达式的根本。
1、正则表达式元字符集合及其意义
符号 | 意义 |
* | 0个或多个在*字符之前的那个普通字符 |
. | 匹配任意字符 |
^ | 匹配行首,或后面字符的非 |
$ | 匹配行尾 |
[] | 匹配字符集合 |
\ | 转义符,屏蔽一个元字符的特殊意义 |
\<\> | 精确匹配符号 |
\{n\} | 匹配前面字符出现n次 |
\{n,\} | 匹配前面字符出现至少n次 |
\{n,m\} | 匹配前面字符出现n~m次 |
2、正则表达式的扩展
awk和perl等linux工具支持正则表达式扩展出来的一些元字符
符号 | 意义 |
? | 匹配0个或1个在其之前的那个普通字符 |
+ | 匹配1个或多个在其之前的那个普通字符 |
() | 表示一个字符集和或用在expr中 |
| | 表示“或”,匹配一组可选的字符 |
注:bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep、sed、awk等。但是bash shell可以使用通配符。
常用通配符及意义
符号 | 意义 |
? | 匹配一个任意字符 |
* | 匹配任意位的任意字符 |
[] | 表示一个字符集和或用在expr中 |
{} | 表示一组表达式的集合 |
^ | 取反 |
3、grep命令族简介
grep:标准grep命令,支持基本正则表达式。
egrep:扩展grep命令,支持基本和扩展正则表达式。
fgrep:快速grep命令,不支持正则表达式,按照字符串的字面意思进行匹配。