正则表达式的学习

       正则表达式:处理字符串的方法,以行为单位处理字符串,其通过一些特殊符号的辅助,可以使用户轻易的进行查找、删除、替换某特定字符串的处理程序。

       支持正则表达式表示法的工具程序:grep、vi、awk、sed

       正则表达式分类:1)基础正则表达式;2)扩展正则表达式

       而在学习正则表达式之前,首先学会工具程序grep的用法: 

grep [-acinv] [--color=auto] '查找字符串' filename
参数:
-a:将binary文件以text文件的方式查找数据
-c:计算找到“查找字符串”的次数
-i:忽略大小写
-n:输出行号
-v:反向显示
--color=auto:将找到的关键部分加上颜色显示

        正则表达式则是操作上述grep中“查找字符串”选项

        以linux中regular_express.txt为例

        

        1)行首与行尾字符:标注以什么开始,以什么结束^和$

         

        含义:找出以th开头的行数,并使用grep的-i选项,忽略大小写

        

        含义:找出以"."结尾的行,其中.有特殊含义,需要用转移字符\进行转义

             

        含义:找出空行

        2)利用中括号[]查找集合字符

        

        含义:查找包含goo或foo的行

        

       含义:查找不包含小写字母goo或foo的行,此处在[]中的符号^与行首标识符含义不同,此处含义为“反向选择”,在[]之外则代表定位在行首的意义

       

       含义:查找包含任意数字的行

       3)任意一个字符“.”与重复字符“*”

       “.”:代表一定有一个任意字符的意思

       “*”:代表重复前一个字符0-无穷多次的意思

      

      含义:即找出包含g??d字符串,其中中间两个点代表任意一个字符

      

      含义:找出o出现0次或多次的行

      

      含义:找出o出现0次或多次的行,但由于前面多出两个o,所以匹配到的行o至少出现两次

      

      含义:gg之间出现任意字符一次,其中可以匹配任意字符

     4)限定连续字符范围:{n,m},其中{}需要进行转义

      

     含义:匹配出现2-5次O的行

     

     含义:匹配出现>=2次O的行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章