* : 左边的字符有0-无穷个
+ :左边的字符有1-无穷个(扩展的,用egrep或 grep -E)
? :左边的字符有0或1个
{n} :左边的字符有n个
{n,m} :左边的字符有n个-m个
{n,} :左边的字符有n个到无穷个
. :除换行符以外的任意字符
^ :行首
$ :行尾
[] : 字符组内的任意字符
[a-zA-Z] 匹配a到Z
注意:如果要匹配的字符就是-本身, - 只能在开头或结尾,且加上转义符
[^] :对字符组内的每个字符取反,非字符组内的字符
例子:
egrep r[0-9]+t b.txt :r,t之间的数字有1个或多个
egrep -e abd -e abc b.txt 或
egrep 'ab(d|c) ' b.txt 匹配abd、abc
注意正则表达式和通配符的区别。
posix定义的字符分类:
[:alnum:] 匹配范围为[a-ZA-Z0-9]
[:alpha:] 匹配范围为[a-ZA-Z]
等