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
posted @ 2016-04-06 14:00  勤奋的笨鸟  阅读(297)  评论(0)    收藏  举报