Linux学习笔记之正则表达式
不管是看Linux书籍还是视频教程都有说正则表达式相当重要,正确运用正则表达式能够帮助管理系统是减少很多的工作量。实际上,正则表达式是一种处理字符串的方法,通过一些特殊符号的辅助,让用户轻易达到查找、删除、替换特定字符串。可以说,它是Linux基础当中的基础,学完之后一定会大有增益。
一、通配符和正则表达式的区别;
通配符只是bash接口中的一个功能,而正则表达式则是一种字符串处理的表示方式;学习正则表达式之前一定要将bash通配符的意义全都忘掉,不然很容易混淆两者的概念,影响正则表达式的学习。
二、基础正则表达式
先从鸟哥处下载练习文档 regular_express.txt作为后面的练习文档
1.利用中括号[ ]查找集合字符
1.1 [abc]表示匹配[]中任意一个字符
例如:taste和test同时存在“t?st”查找含有taste或者test的行可以用下面命令
[root@Campusnetwork sh]# grep -n "t[ae]st" regular_express.txt
1.2 [^a] 表示a取反,即不查找a字符
例如:a[^a-z]b表示查找ab之间不是小写字母的字符串
grep -n "a[^a-z]b" regular_express.txt
2.行首和行尾字符^$
^abc表示以abc为开头的字符串,abc$表示以abc结尾的字符串
[root@Campusnetwork sh]# grep -n ‘^a-zA-Z’ regular_express.txt //查找不是以英文字母开头的行
[root@Campusnetwork sh]# grep -n ‘^$’ regular_express.txt//查找空白行
3.匹配任意一个字符.和匹配任意多次字符*
通配符中*表示匹配任意的多个字符而正则表达式的*则表示前面字符重复任意多次
[root@Campusnetwork sh]# grep -n "ab*" regular_express.txt //匹配a,ab,abb,abbb…
而.表示匹配任意一个字符
如想要找 g.t可以表示get或者got
4.限定连续字符范围\{n,m\}
例:查找符合a和c之间有2个到3个之间的b存在的字符串,即abbc,abbbc
grep -n "a\{2,3\}b" regular_express.txt

浙公网安备 33010602011771号