三、正则相关资料推荐及注意事项总结
本篇博文是正则表达式系列的结尾总结篇,主要包括:
- Linux下的文本处理工具与支持BRE、ERE、PRE情况;
- 正则表达式使用容易混淆忽略点;
- 一些比较好的学习资料总结;
1.Linux下的文本处理工具与支持BRE、ERE、PRE情况
grep , egrep 正则表达式特点:
1)grep 支持:BREs、EREs、PREs 正则表达式
grep 默认支持 ”BREs“ ;
grep 加 ”-E" 参数,则使用“EREs“ ;
grep 加 “-P" 参数,则使用 “PREs" ;
2)egrep 支持:EREs、PREs 正则表达式
egrep 默认是“EREs” ;
egrep 加 “-P" 参数,则使用 “PREs" ;
3)grep 与 egrep 正则匹配文件,处理文件方法
grep 、egrep 处理对象:文本文件;
grep 、egrep 处理文件方式:按行处理;
sed 正则表达式特点
1)sed 文本工具支持:BREs、EREs
sed 默认支持"BREs" ;
sed 加命令参数 “-r ”,则支持“EREs" ;
2)sed 功能与作用
sed 处理对象:文本文件 ;
sed 文本处理方式:按行处理;
Awk(gawk)正则表达式特点
1)Awk 文本工具支持:默认支持EREs ;
2)Awk 文本工具处理文本的特点
awk 处理的对象:文本文件
awk 处理操作:主要是对列进行操作
2、正则使用容易混淆忽略点
1)对于BRE中使用?,+,|,{,},(,)等特殊元字符注意添加反斜杠“\”进行转义,在ERE中直接使用;
2)对于匹配非打印字符\t,\s,\n等这些要通过转义实现特别功能注意“\”前还有一个“\”;
3)sed中注意使用ERE要加上“-r”参数,网上看到一个典型的问题就是使用“\t”正则中无效,其实并不是无效,而是因为默认sed是BRE模式,前面还需要一个“\”转义“\”;若加上“-r”参数使用ERE则可直接用“\t”匹配TAB键空格;
4)“?”:当该字符紧跟在任何一个其他限制符(*, +, ?, {n},{n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串;
5)[^]与^[]的区别,前者是除去[]中之外的单个字符匹配,后者是以[]中字符开头的行首;
6)反向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身;
3、一些比较好的学习资料总结;
个人感觉下面这几个资料链接讲的不错。
1)菜鸟教程:
https://www.runoob.com/regexp/regexp-tutorial.html
2)正则表达式30分钟入门教程
https://deerchao.cn/tutorials/regex/regex.htm
3)脚本之家——正则表达式
https://www.jb51.net/list/list_6_1.htm
到此对于正则表达式的学习算是总结收尾了,后续对于其他与正则相关的文章补充将以正则表达式补充系列继续总结。文章既然是总结,那么大部分的逻辑架构主要还是为了方便自己,同时也希望这些总结能对相关读者有一定的帮助。