正则表达式
不同的符号有不同的含义,方便我们在文件中查找/过滤内容
正则表达式 Regular Expression 简称RE
正则表达式的分类
基础正则:Basic Regular Expression 简称BRE
扩展正则:Extended Regular Expression 简称ERE
BRE和ERE的区别
符号不同
支持的命令不同
通配符与正则的区别
通配符:方便我们进行查找文件,linux下大部分命令都支持
正则: 方便我们进行过滤(在文件中找内容),linux三剑客或开发语言支持
使用正则的一些注意事项
*注意中文符号
*给grep egrep加上颜色(在centos7下系统自动配置完成,在centos6下要自己手动添加)
基础正则
^ 表示以什么开头
$ 表示以什么结尾
注:cat命令参数-A可以显示文件中所有隐藏符号,目前知道在每一行的结尾加上$
^$ 表示空行,这一行中什么都没有
. 表示任意1个字符 (不会匹配出空行)
注:grep命令参数-o显示grep命令每次匹配出了什么内容(显示grep的执行过程)
\ 转义字符,去掉符号原有的特殊意义
转义字符系列
常用 \n(回车) \r(tab键,是一个字符,在linux下等于8个空格)
注:echo命令参数-e让echo命令支持转义字符系列
参数-n不输出每行结尾的回车
星号* 表示前1个字符连续出现0次或0次以上
.* 表示所有,任意字符
具有贪婪特性,能匹配多少字符就匹配多少字符
在正则表达式,表示所有(.*)或连续出现的时候,会产生贪婪性
[] 中括号,相当于一个字符,里面的每个字符都会匹配一遍(特点,不会过滤空行)
[a-z] 表示所有小写字母
[A-Z] 表示所有大写字母
[a-ZA-Z]=[a-Z] 表示所有字母(不分大小写)
[0-9] 表示所有数字
[0-Z] 表示所有数字大小写字母
[^] 表示取反
扩展正则
+ 前1个字符连续出现1次或多次(一般与[]一起使用)
| 或者
() 被括起来的内容相当于一个整体或用来表示后向引用(反向引用)
{} 连续出现
b{m,n} 前1个字符(b)连续出现至少m次,最多出现n次
b{m} 前1个字符连续出现n次
b{m,} 前1个字符连续出现至少m次
b{,n} 前1个字符连续最多出现n次
? 前1个字符出现0次或1次