正则表达式由元字符和普通字符组成,有正则表达式和拓展正则表达式之分。

正则表达式元字符有以下几类:(grep)

        字符匹配元字符:

                .(点号) :匹配任意一个字符;

                [ ]:匹配中括号内的其中一个字符;

                [^ ]:匹配不包括中括号内字符的其他字符;

        次数匹配元字符:(匹配元字符前面的字符重复的次数)

                *:匹配前面的字符任意次(包含零次);

                \?:匹配前面的字符零次或1次(前面的字符可有可无);

                \+:匹配前面的字符至少一次;

                \{n\}:匹配前面的字符出现n次;

                \{n,\}:匹配前面的字符出现至少n次;

                \{,m\}:匹配前面的字符出现至多m次(包含零次);

                \{n,m\}:匹配前面的字符出现至少n次至多m次。

        位置描定元字符:

                ^:描定行首;

                $:描定行尾;

                \<  (\b):描定词首(出现在表达式首部);

                \>  (\b):描定词尾(出现在表达式尾部);

        分组:用来把匹配到的字符存储到内存的变量中,以供后面引用。

                \( \):分组符号

                \1:引用第一个分组匹配到的字符


拓展正则表达式:(egrep,grep -E)

        

        字符匹配元字符:

                .(点号) :匹配任意一个字符;

                [ ]:匹配中括号内的其中一个字符;

                [^ ]:匹配不包括中括号内字符的其他字符;

        次数匹配元字符:(匹配元字符前面的字符重复的次数)

                *:匹配前面的字符任意次(包含零次);

                ?:匹配前面的字符零次或1次(前面的字符可有可无);

                +:匹配前面的字符至少一次;

                {n}:匹配前面的字符出现n次;

                {n,}:匹配前面的字符出现至少n次;

                {,m}:匹配前面的字符出现至多m次(包含零次);

                {n,m}:匹配前面的字符出现至少n次至多m次。

        位置描定元字符:

                ^:描定行首;

                $:描定行尾;

                <  (\b):描定词首(出现在表达式首部);

                \>  (\b):描定词尾(出现在表达式尾部);

        分组:用来把匹配到的字符存储到内存的变量中,以供后面引用。

                ( ):分组符号

                \1:引用第一个分组匹配到的字符

        特殊元字符:

                |:匹配或

字符集的表达式:

        [[:space:]]:表示一个空白字符;

        [[:digit:]]:表示一个整数;

        [[:lower:]]:表示一个小写字母;

        [[:upper:]]:表示一个大写字母;

        [[:alpha:]]:表示一个大写或小写字母;

        [[:alnum:]]:表示一个字母或整数;

        [[:punct:]]:表示一个标点符号;