1.正则表达式
1.1用处:帮助我们快速过滤文件
1.2分类:
基础正则 (BRE Basic regular expression)
扩展正则 (ERE Extended regular expression)
1.3区别基础正则与扩展正则的区别仅仅是元字符不通,基础正则承认的字符
基础正则支持的符号其他字符识别为普通符号
【^】【$】【^$】【.】【* 】【.*】【\】
扩展正则支持的符号
添加了【()】【{}】【?】【+】【+】【?】【|】
只有在用反斜线 ' \ ' 进行转义的情况下,字符【()】【{}】才会被基础正则BRE 当做元字符处理,而扩展正在 ERE中,任何字符加上反斜杠反而会使其被当做普通字符处理
1.4正则与通配符的区别
通配符:作用是用来查找文件名,linux大部分命令都支持
正则:作用是在文件中过滤内容,支持的命令有,linux三剑客 grep sed awk 以及一些语言Python Java
1.5使用正则表达式注意事项
注意中英文状态下的符号
中文 ‘’ “” ‘’ ()* …… $ | {} 【】
英文 '' "" . * ^ $ | {} []
1.6 基础正则
环境测试
先介绍一个命令grep三剑客之一,使用正则表达式搜索文本,并把匹 配的行打印出来
常用选项:
-o 代表的是只输出匹配的选项
-n 显示每一行行号
-v 反选匹配
-
第一个符号 【^】匹配以...开头
-
第二个符号 【$】匹配以...结尾
-
第三个符号 "^$" 匹配空行
-
第四个符号 【.】匹配任意字符
显示执行过程,每次一个,截取其中一部分
-
第五个符号 【*】匹配前一个字符出现0次或0次以上
- 第六个符号 【.*】匹配所有字符
- 第七个符号 【\】转义字符,字符还原本来的含义
- 第八个符号 【[]】
[abc]相当于一个符号,但是每次匹配一个
- 第九个符号 【[^]】
[abc]相当于一个符号,但是每次匹配一个,不含a 或 b 或 c
1.7扩展正则
注意使用的时候,grep不支持扩展正则,使用-E 选项或者egrep
- 第一个符号 【+】前一个字符出现1次或一次以上
-
第二个符号 【|】表示或者
-
第三个符号【()】1表示一个整体 2 反向引用/后向引用
后向引用
将2和3 当做一个整体,后方引用第二个,也就是数值 3 ,注意加上转义符
-
第四个符号【{}】{n,m} 匹配前面的字符最少出现n此,最多m次
- 第五个符号【?】匹配前一个字符重复0次或1次