首页 > 其他 > 详细

初识正则表达式

时间:2014-03-20 11:39:17      阅读:379      评论:0      收藏:0      [点我收藏+]

什么是正则表达式:

正则表达式是一类字符所书写的模式,使用一堆字符,不表示字符原有的意义而是表示元字符用与描述功能的,用于功能性描述所书写出来的表达式称为正则表达式;

什么是表达式的模式 元字符:

元字符,不表示字符本事的意义,而用于额外功能性的描述;使用一类元字符  一类不表示本身意义的元字符,组合其他字符所描述出来的 能够匹配符合条件 或者说能够匹配模式字符的表达式就称做是正则表达式的模式;

有什么功能:

匹配查找文件中所需特定格式的字符串;

分类:

 基本正则表达式;扩展正则表达式。

grep:默认支持基本正则表达式
egrep:扩展正则表达式
fgrep:不支持正则表达式元字符,搜索字符串的速度快;


命令格式:

grep [options] ‘patern‘ FILE  

#:如果模式中没有元字符可以不加引号,如果出现变量必须使用双引号,出现元字符必须加引号,可以用单双引号;

元字符:

.: 匹配任意单个字符

例:查找/etc/passwd文件中以r开头中间跟了两个任意字符后面是t的字符串;

#:grep “r..t”/etc/passwd

bubuko.com,布布扣


* :  匹配其前的字符任意次

例:查找/etc/passwd文件中匹配“ro*t”模式的串;

#: grep --colo "ro*t" /etc/passwd

bubuko.com,布布扣

.*: 匹配任意长度的任意字符

例:查找/etc/passwd文件中以root开头后面跟了任意字符的串;

#:grep --colo "root.*"

bubuko.com,布布扣


[ ] : 匹配指定范围内的任意单个字符;

例:查找/etc/passwd文件中以r开头 以t结尾,中间跟了两个任意小写字母的串;

#:grep --colo "r[a-z][a-z]t" /etc/passwd;

bubuko.com,布布扣


^ :锚定行首的符合条件的内容,用法格式^pattern;

例:查找/etc/passwd文件中以root为行首的串;

#:grep --colo "^root" /etc/passwd;

bubuko.com,布布扣

root为行首后面跟了任意字符的串;

#: grep --colo "^root.*" /etc/passwd;

bubuko.com,布布扣


$ :锚定行尾的符合条件的内容,用法格式 pattern$

例:查找以passwd文件中halt为行尾的行;

#: grep --colo "halt$" /etc/passwd;

bubuko.com,布布扣


^$: 查找能匹配整行内容的条件,也可以匹配空白行;

查找passwd文件中以root为行首 bash为行尾 中间任意字符的行;

#: grep --colo "^root.*bash$" /etc/passwd;

bubuko.com,布布扣


\?: 匹配紧挨在其前面的字符0次或1次 (加上\起到转义作用,?对bash有特殊意义)

例:查找test文件中 字符ac之间包含0或1个b的串;

#:grep --colo "ab\?c" test

bubuko.com,布布扣


\{m,n\}:匹配其前面的字符至少m次至多n次

例:查找test文件中字符ac中间包含最少1最多3个b的串;

bubuko.com,布布扣


\{0,n\}:0至N次,至多N次

ac 之间包含0-3个b的串;

bubuko.com,布布扣


\{m,\}:至少m次

ac之间至少包含2次b的串;

bubuko.com,布布扣


\{m\} 精确指定出现m次

ac中间包含3个b的串;

bubuko.com,布布扣


查找passwd文件中以大小写r开头中间跟了任意1-5个字符以大小写t结尾的串;

#: grep --colo "[rR].\{1,5\}[tT]" /etc/passwd

bubuko.com,布布扣


\< :锚定词首

查找passwd文件中以r开头后面跟3个任意字符的串;

bubuko.com,布布扣

\> :   锚定词尾

查找以t结尾前面跟了任意3个字符的串;

bubuko.com,布布扣

\<pattern>\:精确锚定

查找以r开头以t结尾的单词;

bubuko.com,布布扣


\(\)\1:分组,引用  

bubuko.com,布布扣


grep的选项:

--color=auto  加颜色
-v :反向选取,只显示不符合模式的行;
-o: 只显示被匹配到的串本身;
-A # :显示匹配到的行时,顺带显示其后面的#个行(N行)
-b#:前面的N行
-c# :  后面的N行
-i:匹配时不区分大小写;

扩展选项:

-E:使用扩展的正则表达式;

+:匹配其前面的字符至少一次    

a|b :二选一 或者

查找f出现最少1次的串;ff或者rr的串;

bubuko.com,布布扣



















本文出自 “netyang” 博客,请务必保留此出处http://netyang.blog.51cto.com/8622807/1379964

初识正则表达式,布布扣,bubuko.com

初识正则表达式

原文:http://netyang.blog.51cto.com/8622807/1379964

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!