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

正则表达式(grep命令下的匹配)

时间:2015-12-02 18:52:01      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:字符串   表达式   字母   


基本正则表达式:REGular EXPression(REGEXP)



一、元字符:

  1. .  :匹配任意单个字符;

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

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

PS:常用字符集合

    [:digit:] —— 数字集合

    [:lower:] —— 小写字母集合

    [:upper:] —— 大写字母集合

    [:space:] —— 空格

    [:alpha:] —— 所有字母集合

    [:alnum:] —— 所有字母和数字集合



二、次数匹配:

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

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

  3. \? :匹配其前面的字符至少一次 ; 

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

PS:正则表达式默认情况工作在贪婪模式下,即匹配符合表达式的最大长度字符串。


三、位置锚钉:

  1. ^ :锚钉行首,此字符后面的内容必须出现在行首;

  2. $ :锚钉行尾,此字符前面的内容必须出现在行尾;

  3. ^$:空白行(锚钉刚开始就结束的行);

  4. \<或\b:锚钉词首,其后面的任意字符必须作为单词(非英语意义上的单词)首部出现;

  5. \>或\b:锚钉词尾,其前面的任意字符必须作为单词(非英语意义上的单词)尾部出现。

    例如:\<root\>匹配root这个单词。


四、分组:

  1. \(\):匹配分组内容,将小括号中的内容作为一个整体去匹配。

    例如:\(ab\)*表示匹配“ab”任意次。

  2. 后向引用(有人也称为前向引用):在使用分组的前提下使用。

    \1 —— 引用第一个左括号以及与之对应的右括号所包含的所有内容(无论是否出现括号嵌套)

    \2 —— 引用第二个左括号以及与之对应的右括号所包含的所有内容(同上)

    \3 —— ...(一次类推)...

    例如以下三行内容:

        He like his liker.

        She love her lover.

        He like her lover.

    表达式:l..e  可以匹配每一行;

    表达式:\(l..e\).*\1  只能匹配前两行。




扩展正则表达式:(区别于基本正则表达式)



  1. ? :次数匹配,匹配其前面的字符最多一次(注意:此处前面没有\);

  2. + :次数匹配,匹配其前面的字符至少一次(注意:基本正则表达式没有此元字符);

  3. {m,n}:次数匹配,用法同基本正则表达式 (花括号前面不需要使用\);

  4. ():分组,真正意义上的分组(不需要使用\),同样支持后向引用;

  5. | :或者。例如:a|b 匹配a或者b,C|cat 匹配C或者cat(匹配整个左边或右边)。



over.


本文出自 “笨鸟学飞” 博客,请务必保留此出处http://yshun.blog.51cto.com/9570549/1718837

正则表达式(grep命令下的匹配)

标签:字符串   表达式   字母   

原文地址:http://yshun.blog.51cto.com/9570549/1718837

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