正则表达式:RegulaExpreession,简写为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&;或PATTERNb &;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&;或PATTERNb &;PATTERN&;:单词锚定。 (4)、分组及引用: (PATTERN):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理; (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|