基本正则表达式与扩展正则表达式
基本正则表达式(BRE)和扩展正则表达式(ERE)的区别仅仅是元字符(meta charactor)的区别而已。(对,就是这么简单)
BRE:只有^$.[]*
是元字符
ERE:^$.[]*+(){}?|
都是元字符
ERE中新加的字符在BRE里只是普通的字符,如+
只能匹配字符加号。如果想在BRE里使用特殊含义,需要转义。
示例:
$echo "abcdefg" | grep 'a.+g' #不匹配任何字符串
$echo "abcdefg" | grep 'a.\+g' #匹配整个字符串
$echo "abcdefg" | grep -E 'a.+g' #使用扩展正则表达式,匹配整个字符串