正则表达式: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命令中