扩展式正则

1625人浏览 / 0人评论
扩展正则符号
+       连续出现的字符,例如 0 就是0+
|        或者 a|b a或者b
{}      前一个字符出现的次数②生成序列
 
一、命令实战
扩展正则符号一般配合egrep使用 或者 grep -E
+ 连续出现的字符 例如 0 就是 0+
[root@liangaeyuedu-lpt liangaeyu]# egrep ‘0+' liangaeyu.txt
my qq is 49000448
not 4900000448.

取出文件中连续出现的字母
egrep '[a-Z]' liangaeyu.txt
egrep '[a-Z]+' liangaeyu.txt
egrep '[a-Z]' liangaeyu.txt
egrep '[a-Z]+' liangaeyu.txt
[root@liangaeyuedu-lpt /liangaeyu]# egrep -o '[a-Z]' liangaeyu.txt 一个字母一个字
母找
I
a
m

[root@liangaeyuedu-lpt /liangaeyu]# egrep -o '[a-Z]+' liangaeyu.txt 一个单词一个的单
词找
I
am
liangaeyu
teacher 

| 或者
[root@liangaeyuedu-lpt /liangaeyu]# egrep 'liangaeyu|oldbey' liangaeyu.txt 查找liangaeyu 和
liangzeye
I am liangaeyu teacher!
my blog is http://liangaeyu.blog.51cto.com
our size is http://blog.liangaeyuedu.com
my god ,i am not lianzeye! 

{ } 0{n,m} 前一个字符至少连续出现n
次,最多连续出现了m次
[root@liangaeyuedu-lpt /liangaeyu]# egrep '0{1,3}' liangaeyu.txt
my qq is 49000448
not 4900000448.
[root@liangaeyuedu-lpt /liangaeyu]# egrep '0{1,3}' liangaeyu.txt -o
000
000
00 

[root@liangaeyuedu-lpt /liangaeyu]# egrep '0{3,4}' liangaeyu.txt
my qq is 49000448
not 4900000448.
[root@liangaeyuedu-lnb /liangaeyu]# egrep '0{3}' liangaeyu.txt
my qq is 49000448
not 4900000448. 

[root@liangaeyuedu-lpt /liangaeyu]# cat id.txt
金 211324198705244720
万 500224197105168312
万 500224197
任 1231231231liangaeyu
任 3liangaeyu
任 lidao97303136098
任 alex2197303136098
任 350182197303oldgir
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X
[root@liangaeyuedu-lpt /liangaeyu]# egrep '[0-9]{18}|[0-9]{17}X' id.txt
[root@liangaeyuedu-lpt /liangaeyu]# [0-9]{18}|[0-9]{17}X
[root@liangaeyuedu-lpt /liangaeyu]# egrep '[0-9]{17}[0-9X]' id.txt 

括号中的内容看作是一个整体
①[root@liangaeyuedu-lpt liangaeyu]# egrep 'liangaeyu+' liangaeyu.txt -o
liangaeyu
liangaeyu
liangaeyu
liangaeyuyyyyyyy 

[root@liangaeyuedu-lpt liangaeyu]# egrep '(liangaeyu)+' liangaeyu.txt -o
liangaeyu
liangaeyu
liangaeyu
liangaeyu 

[root@liangaeyuedu-lpt liangaeyu]# egrep 'liangaeyu|liangze' liangaeyu.txt
I am liangaeyu teacher!
my blog is http://liangaeyu.blog.51cto.com
our size is http://blog.liangaeyuedu.com
my god ,i am not liangze!
liangaeyuyyyyyyy 

[root@liangaeyuedu-lpt liangaeyu]# egrep 'liangze|yu' liangaeyu.txt
I am liangaeyu teacher!
my blog is http://liangaeyu.blog.51cto.com
our size is http://blog.liangaeyuedu.com
my god ,i am not liangzeyu!
liangaeyuyyyyyyy 

[root@liangaeyuedu-lpt liangaeyu]# egrep 'liangz(o|e)yu' liangaeyu.txt
I am liangaeyu teacher!
my blog is http://liangaeyu.blog.51cto.com
our size is http://blog.liangaeyuedu.com
my god ,i am not !
liangaeyuyyyyyyy 

? 前边字符 出现0次或1次
[root@liangaeyuedu-lpt liangaeyu]# egrep 'liangze?d' sed.txt.haha
101,liangaeyu,CEO
[root@liangaeyuedu-lpt liangaeyu]# egrep 'liangy?????y' sed.txt.haha
101,liangaeyu,CEO
122,liangaeyu,DDD 

全部评论