符号 意义
* 0个或多个在*字符之前那个普通字符
. 匹配任意字符
^ 匹配行首或后面字符的非
$ 匹配行尾
[] 匹配字符集合
\ 转义符,屏蔽一个元字符的特殊意义
\<\> 精确匹配符号
\{n\} 匹配前面字符出现n次
\{n,\} 匹配前面字符至少出现n次
\{n,m\} 匹配前面字符出现n次与m次之间
*符号用于匹配前面一个普通字符的0次或多次重复 hel*o: *符号前面的普通字符是l,*字符就表示匹配l字符0次或多次,如字符串helo、hello、hellllllo都可以由hel*o来表示 .符号用于匹配任意一个字符
„73.表示前面三个字符为任意字符,第4和第5个字符是7和3,最后一个字符为任意字符,如xcb738、4J973U都能匹配上述字符串
^符号用于匹配行首,表示行首的字符是^字符后面的那个字符
^cloud表示匹配以cloud开头的行
$符号匹配行尾,$符号放在匹配字符之后a、b、1、2等字符属于普通字符,普通字符可以按照字面意思理解,如:a只能理解为英文的小写字母a,没有其他隐藏含义。 micky$表示匹配以micky结尾的所有行
^$ 表示空白行
[]匹配字符集合,该符号支持穷举方法列出字符集合的所有元素 [0123456789]、[0-9]„„
[A-Za-z] [A-Za-z]* 匹配所有英文单词
\符号是转义符,用于屏蔽一个元字符的特殊意义 \. \$ \^
\<\>符号是精确匹配符号,该符号利用\符号屏蔽<>符号
\<the\> 精确匹配单词the,them, they等不匹配 \{\}系列符号表示前一个字符的重复
\{n\}:匹配前面字符出现n次 ,如 JO\{3\}B 匹配JOOOB
\{n,\}:匹配前面字符至少出现n次,如JO\{3,\}B匹配JOOOB、JOOOOB、JOOOOOB等字符串
\{n,m\}:匹配前面字符出现n次与m次之间,如JO\{3,6\}B匹配JOOOB、JOOOOOOB等字符串
[a-z] \{5\}: 匹配5个小写英文字母,比如hello、house等
awk和Perl等Linux工具还支持正则表达式扩展出来的一些元字符,这些元字符如下表所示
符号 意义
? 匹配0个或1个在其之前的那个普通字符
+ 匹配1 个或多个在其之前的那个普通字符
() 表示一个字符集合或用在expr 中
| 表示“或”意义,匹配一组可选的字符
通配(globbing)是把一个包含通配符的非具体文件名扩展到存储在计算机、服务器或者网络上的一批具体文件名的过程
最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等,通配符与元字符意义不完全相同:
*符号不再表示其前面字符的重复,而是表示任意位的任意字符
?字符表示一位的任意字符
^符号在通配中不代表行首,而是代表取反意义