• 元字符
    • ^: 匹配一行行首
    • $: 匹配一行行末
    • .: 匹配任何字符
      • 2016.3.28匹配2016-3-282016/3/282016.3.28
    • |: 多选结构元字符
      • 例如a|b这个整体是一个多选结构ab分别表示多选分支([Ff]ir|1)st匹配Firstfirst1st^(A|B|C):.*匹配 以A:或者B:或者C:开头的行
    • \<\>: 匹配单词的开始和结束的位置,但是某些版本的egrep可能不支持。
    • (): 限制多选项|的范围;将若干字符组合为一个单元,受量词的作用进行匹配。
      • 例如([Ff]ir|1)st,在这里()用来限制|的范围。
      • 例如([A-Z]){3,6},在这里()受量词的作用可以匹配3-6个大写字母。
      • 括号的反向引用:所谓括号的反向引用,就是指正则表达式里面括号的内容 是被正则表达式记住的,括号以(作为开始,从左到右开始数,每个括号的内容分别 可以使用\n来表示,其中n就是你想要匹配的第几个括号的内容。
        • 例如([A-Za-z0-9]{3,6})-\1可以匹配3至6个数字和字母然后是一个横线, 最后是一个和上面匹配内容一样的内容。
    • ?: 量词表示可以不出现,也可以只出现一次。
    • +: 量词表示至少出现一次。
    • *: 量词表示可以出现任意次数。
    • {}: 表示区间,表示紧跟在前面的元素出现的次数的限制。
      • [0-9]{6,11}可以匹配6-11位数的数字。
  • 转义符
    • \,反斜线转移符,一般情况下元字符的前面加上一个转义符就变成了它的文本意思;例如 \.表示的就只是一个点,而不表示所有的字符。
  • 字符组
    • 匹配若干字符之一(只能匹配一个)
    • [a]匹配字符a
    • [ab]匹配字符a或者b但只能匹配一个
    • h[ea]ll[oe]匹配hellohallohelle还有halle
  • 字符组元字符
    • -
      • -在字符组内表示一个范围。例如[0-9]等同于[0123456789],只有连续的字符(符合ASCII码顺序)是可以使用字符组元字符-来进行连接的。
      • 示例:[A-Fa-f0-9]等同于[ABCDEFabcdef0123456789]可以匹配其中里面的任何一个字符。
      • -在字符组内如果是第一个字符的话,那么它就不是元字符。也只是一个普通的字符。
    • ^
      • ^在字符组内表示这个字符组会匹配任何未列出的字符
      • ^这个字符一定要放在字符组内的第一位才表明它是一个字符组元字符,不然就不是。
      • [^1-9]表示匹配字符[123456789]以外的所有的单个字符