正则表达式:Regula Expreession,简写为REGEXP.
作用:能够使用一种通配符的通配机制来完成文本通配的。
结构:由正常的文本符号和通配符以及其他格式控制符共同组成。
正则表达式分为两类:
一、 基本正则表达式---- grep。
二、扩展正则表达式 ----egrep。
一、基本正则表达式---- grep。
grep:全局搜索正则表达式并且把能够匹配到的一行打印出来。
作用:文本搜索工具,根据用户指定的”pattern(过滤条件)“对目标文本逐行进行匹配检查;打印出符合条件的行;
使用格式;grep [OPTIONS] PATTERN [FILE...]
常用选项:
--color=auto:对匹配到的文本着色后高亮显示。
-i: 不区分字母大小写。
-o: 仅显示匹配到的内容。
-v: 能够匹配到的不显示,不能够匹配到的反而显示----就叫做 反向匹配。
-E: 支持扩展的正则表达式;
-q: 静默模式,不管能否匹配得到,都不输出任何信息。
-e :可以同时搜索多种模式,-----多模式机制。
-f :将多模式编写在脚本中,通过greap -f 文件名 来完成搜索 。
-A# : 显示匹配到的行和匹配到的行的下#行
-B# :显示匹配到的行和匹配到的行的上#行。
-C# :显示匹配到的行和匹配到的行的上#行以及下#行。
基本正则表达式元字符:
(1) 、 字符匹配:
.:匹配任意单个字符。
[ ]:匹配范围内的任意单个字符。
[^ ]:匹配范围外的任意单个字符。
[[:digit:]] :表示所有数字[0-9]。
[[:lower:]] :表示所有小写字母等同于 [a-z]。
[[:upper:]] :表示所有大写字母等同于 [A-Z]。
[[:alpha:]] :表示所有字母等同于 [a-zA-Z]。
[[:alnum:]] :表示所有字母和数字等同于 [0-9Na-zA-Z]。
[[:space:]] : 表示空白字符。
[[:punct:]] : 表示标定符号。
[[:print:]] : 表示非空字符(包括空格)。
[[:cntrl:]] : 表示所有控制字符 。
(2)、 匹配次数:
*:匹配前面的字符任意次(0,1或多次);
.*:任意长度的任意字符;
\+:匹配前面的字符至少1次;
\?:匹配前面的0次或1次,即前面的字符可有可无,要是有,则只能有一个。
\{m\}:其前面的字符出现m次,m为非负整数;
\{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]
\{0,n\}:至多n次;
\{m,\}:至少m次;
(3)、位置锚定:
限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的哪个位置;
^:行首锚定;格式:`^PATTERN` 。
$:行尾锚定;格式:`PATTERN$` 。
^PATTERN$:要让PATTERN完全匹配一整行。
^$:空行。
^[[:space:]]*$:匹配空行或空白字符 。
\<或\b:词首锚定,用于单词模式的左侧,格式为\<PATTERN或\bPATTERN
\>或\b:词尾锚定,用于单词模式的右侧,格式为PATTERN\>或PATTERN\b
\<PATTERN\>:单词锚定;
(4)、 分组与引用:
\(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理。
\(PATTERN\).*\1:表示引用前面的内容。
二、 egrep:
扩展正则表达式 ----egrep。
使用格式: egrep [OPTIONS] PATTERN [FILE...]
扩展正则表达式的元字符:
(1) 、 字符匹配:
.:匹配任意单个字符。
|:表示符号两边都可以,例:a|b,意思是a或者b。
[ ]:匹配范围内的任意单个字符。
[^ ]:匹配范围外的任意单个字符。
[[:digit:]] :表示所有数字[0-9]。
[[:lower:]] :表示所有小写字母等同于 [a-z]。
[[:upper:]] :表示所有大写字母等同于 [A-Z]。
[[:alpha:]] :表示所有字母等同于 [a-zA-Z]。
[[:alnum:]] :表示所有字母和数字等同于 [0-9Na-zA-Z]。
[[:space:]] : 表示空白字符。
[[:punct:]] : 表示标定符号。
[[:print:]] : 表示非空字符(包括空格)。
[[:cntrl:]] : 表示所有控制字符 。
(2)、匹配次数:
*:匹配前面的字符任意次(0,1或多次)。
?:匹配前面的字符0次或1次。
+:匹配前面的字符1次或多次。
{m}:匹配前面的字符m次。
{m,n}:匹配前面的字符 至少m次,至多n次。
(3)、 位置锚定:
^: 行首锚定;格式:`^PATTERN` 。
$:行尾锚定;格式:`PATTERN$` 。
\<或\b:词首锚定,用于单词模式的左侧,格式为\<PATTERN或 \bPATTERN
\>或\b:词尾锚定,用于单词模式的右侧,格式为PATTERN\>或 PATTERN\b
\<PATTERN\>:单词锚定。
(4)、分组及引用:
(PATTERN):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;
本文出自 “11283309” 博客,请务必保留此出处http://11293309.blog.51cto.com/11283309/1750372
原文:http://11293309.blog.51cto.com/11283309/1750372