天天看点

计算机基础之正则表达式

* : 左边的字符有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]