元字符介绍(一)
1、行的起始和结束
「^」:脱字符号,代表一行的开始
「$」:美元符号,代表结束
「^」和「$」匹配的是一个位置,而不是具体的文本
「^cat」不要理解为匹配以cat开头的行,应理解为匹配的是以c作为一行的第一个字符,紧接一个a,紧接一个t的文本。按照字符来解读更容易理解正则表达式的内部逻辑
2、字符组
匹配若干字符之一。在字符组以外,普通字符(例如「gr[ae]y」中的「g」「r」)都有“接下来是(and then)”的意思——“首先匹配「g」,接下来是「r」······”。这与字符组内部的情况是完全相反的。字符组的内容是在同一个位置能够匹配的若干字符,所以它的意思是“或”。
在字符组外部,“-”连字符只是普通字符; 在字符组内部,“-”连字符如果出现在两个字符之间则视为元字符,否则为普通字符。
排除型字符组:「[^···]」匹配任何未列出的字符。例如,「[^1-6]」匹配除了1到6以外的任何字符。在字符组外部,^表示一个行锚点,但在字符组内部(而且必须是紧接在字符组的第一个方括号之后),它就是一个元字符。排除型字符组表示“匹配一个未列出的字符”,而不是“不要匹配列出的字符”。
3、用点号匹配任意字符
元字符「.」是用来匹配任意字符的字符组的简便写法
4、多选结构
匹配任意子表达式:「|」,“或”,匹配其中任意一个正则表达式
5、忽略大小写
6、单词分界符
「\<」和「\>」,分别用来匹配单词的开头和结尾位置。并不是所有版本的egrep都支持单词分界符。“单词的开始和结束”准确地说是“字母数字符号的开始和结束”
7、可选项元素
「?」代表可选项,只作用于之前紧邻的元素