码迷,mamicode.com
首页 > 其他好文 > 详细

grep及正则表达式

时间:2017-08-30 13:22:03      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:src   nbsp   log   文本   搜索   images   es2017   pattern   正则表达式   

文本查找的需要,

grep,egrep,fgrep

grep(Global Research):根据模式,搜索文本,并将符合模式的文本行显示出来。

Pattern:文本字符和正则表达式的元字符组合而成的匹配条件

grep [OPTIONS] PATTERN [FILE...]

eg

技术分享

       -i:忽略字符大小写

       --color:把匹配到的字符用高亮颜色显示出来,因为加上--color用起来会方便很多,所以用alias给grep取个别名alias grep=‘grep --color‘

    技术分享

       -v:显示没有被模式匹配到的行

       -o:只显示被模式匹配到的字符串

正则表达式:regular expression,REGEXP

正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

元字符:

.:匹配任意单个字符

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

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

字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]

 

匹配次数(贪婪模式,即尽可能长的去匹配):

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

        eg这些个字符串里a,b,ab,aab,acb,adb,amnb哪个能满足a*b

            b:b前面的a出现0次

            aab:b前面的a出现2次

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

     eg:a.*b:以a开头b结尾的字符串

\(此处\是用来转义的)?:匹配其前面的字符1次或0次

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

    eg\{1,\}:匹配其前面的字符至少一次

 

位置锁定:

^:锚定行首,此字符后面的任意内容必须出现在行首

eg

技术分享

 

 $:锚定行尾,此字符后面的任意内容必须出现在行尾

eg显示以数字结尾的行

技术分享

^$:空白行

 

\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现

!!!注意,两个\b的作用不同表现形式为一个放在锚定词前一个放在锚定词尾

eg  !!!注意是词尾

技术分享

 

分组:

\(\)

    \(ab\)*

   后向引用 

   \1:引用第一个左括号以及与之对应的右括号所包括的所有内容

   \2:引用第一个左括号以及与之对应的右括号所包括的所有内容

   \3:引用第一个左括号以及与之对应的右括号所包括的所有内容

 

fgrep:不支持正则表达式,执行速度快

grep及正则表达式

标签:src   nbsp   log   文本   搜索   images   es2017   pattern   正则表达式   

原文地址:http://www.cnblogs.com/itmeatball/p/7450026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!