正则表达式由元字符和普通字符组成,有正则表达式和拓展正则表达式之分。
正则表达式元字符有以下几类:(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:]]:表示一个标点符号;