正则表达式:REGular EXPression,REGEXP

字符匹配:

    .:匹配任意单个字符

    []:匹配指定范围内的任意单个字符

    [^]:匹配指定范围外的任意单个字符

        字符集:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]


匹配次数(贪婪模式):默认下尽可能长地匹配

*:匹配其前面的字符任意次

  例子:a,b,ab,aab,acb,adb,amnd

     a*b:b,ab,aab

.*:任意长度的任意字符

     a.*b:ab,aab,acb,adb,amnd

\?:匹配其前面的字符1次或0次

     a?b:b,ab

     grep 'a\?b'

\{m,n\}“匹配其前面的字符至少m次,至多n次

    \{1,\}:匹配前面的字符至少1次

    \{0,3\}:匹配前面的字符至多3次


位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首

$:锚定行尾,此字符前面的任意内容必须出现在行首

^$:空白行

\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现


分组和后向引用:

\(string\)

\1:引用第一个左括号以及与之对应的右括号所包括的所有内容

\2

\3


grep:根据模式搜索文本,并将符合模式的文本行显示出来

模式(Pattern):文本字符和正则表达式的元字符组合而成匹配条件

grep [OPTIONS] PATTERN [FILE,...]

    -i:忽略大小写

    --color:匹配字符显示颜色

    -v:反向选中

    -o:只显示匹配字符

    -E:使用扩展正则表达式  相当于egrep

    -A #:显示选中匹配行和它以下的#行

    -B #:显示选中匹配行和它以上的#行

    -C #:显示选中匹配行和它上下的#行

例子:grep '^\([0-9]\).*\1$' /etc/inittab



扩展正则表达式:Extended REGEXP

字符匹配:

.:任意单字符

[]:指定范围任意单字符

[^]:指定范围外任意单字符


次数匹配:

*:匹配前面字符任意次

?:匹配前面字符一次或两次

+:匹配其前面的字符至少一次,相当GEREXP的 \{1,\}

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


位置锚定:

^:行首

$:行尾

\<:单词首

\>:单词为


分组和后向引用

(string)

\1,\2,\3:应用第n个(string)


或者

|:or

例子:C|cat:表示C或者cat


×××部分为扩展正则表达式与基本正则表达式的区别或新增内容


扩展正则表达式中需用在grep -E或egrep命令中