正则表达式:
正则表达式就是为处理大量的字符串及文本而定义的一套规则和方法。
Linux三剑客的正则表达式有如下几个特点:
1.为处理大量文本及字符串而定义的一套规则和方法。
2.其工作时以行为单位进行,即一次处理一行。
3.通过正则表达式可以将复杂的处理任务化繁为简,提高操作Linux的效率。
4.仅被三剑客(grep/egrep、sed、awk)命令支持,其他命令无法使用。
正则表达式的分类:
基本正则表达式:BRE对应的元字符有^、$、.、[]、*。
扩展正则表达式:ERE在BRE的基础上增加了()、{}、?、+、|等字符。
基本正则表达式:
^尖角号以……开头,^oldboy 以oldboy开头
$ 美元符 oldboy$ 以oldboy结尾
^$ 空行
. 匹配任意一个且只有任意一个字符,和通配符?一样
\ 让有意义的字符脱掉马甲 还原本义
* 重复前面字符0次或多次
.* 表示所有内容
^.* 组合符 匹配任意以0个或多个字符开头的内容
.*$ 组合符以任意0个或多个字符结尾
[abc] 匹配[]集合内的任意一个字符a或b或c ;[abc]也可以写成[a-c]
[^abc] 匹配不包括^后面的一个字符a或b或c
扩展正则egrep(ERE):
+ 匹配一个字符一次或多次
[:/]+ 匹配括号内的:或/字符一次或一次以上
? 匹配前一个字符0次或一次
| 或者同时过滤多个字符串
() 分组过滤被括起来的东西,表示一个整体
\n 引用()小括号前面的内容 例如:(aa)\1,匹配aaaa
a{n,m} 匹配前一个字符最少n次,最多m次
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次
特殊中括号:
[:digit:] 匹配任意一个数字字符,相当于[0-9]
[:lower:] 匹配小写字母,相当于[a-z]
[:upper:] 匹配大写字母,相当于[A-Z]
网友评论