创新路
我们一直在努力

正则表达式之基础篇——基本正则

    正则表达式,又被称为规则表达式,通俗的讲就是用一串字符来替换符合某种规则的文本的方式,如1a,规则为:数字+字母,然后把数字和字母用某种字符来代替,则可以找到所有包含这些规则的文本

    正则表达式又分为基本正则和扩展正则,基本正则特点是写得比较复杂,兼容性较可以,而扩展正则特点为写得方式比较简单,但是兼容性不是很好

    正则表达式的语言有两部分组成,文本字符和元字符,文本字符就是不变得文本,元字符就是一些字符代替需要可变的文本

    这一篇文章先讲基本正则,下表为基本正则元字符释义

序号 元字符 释义 举例
1 ^ 匹配以什么开头(匹配行首) ^abc      //匹配以abc开头
2 $ 匹配以什么结尾(匹配行尾) abc$      //匹配以abc结尾
3 [ ] 匹配集合当中的任意单个字符 a[bc]      //匹配a字符后面是b或者c,ab或ac
4 [^ ] 对集合取反 a[^bc]   //匹配a后面不跟b或者c的,除ab或者ac之外的
5 [a-z] 匹配a到z中的任意一个字符 [0-9]      //匹配0-9中任意一个字符,匹配数字
6 . 匹配任意单个字符 a.b        //a和b之间任意单个字符都行 如acb a1b 等等
7 * 匹配前一个字符出现任意次数(不单用)

go*gle   //匹配o任意次数,如google,goooooogle等

8 \{n,m\} 匹配前一个字符n~m次 ro\{3,5\}t  //匹配出现r和t中o出现3-5次,如rooot等
9 \{n\} 匹配前一个字符n次 ro\{2}t    //匹配r和t中o出现2次的文本,如root
10 \{n,\} 匹配前一个字符n次以上

ro\{2,\}t  //匹配r和t之间o出现2次及以上,如root,rooot…

    实战演练

        image.png

        根据上述文件a.txt进行正则表达式练习

        1.过滤包含the的关键字

            grep 'the' a.txt

            image.png

        2.过滤文件中不包含the的关键字

            grep  -v 'the' a.txt

            image.png

        3.过滤以小写字母开头

            grep '^[a-z]' a.txt

            image.png

        3.过滤test或者taste这两个单词

            grep 't[ae]ste\{0,1\}' a.txt

            image.png

        4.过滤不想要oo前面有g的

            grep '[^g]oo' a.txt

            image.png

            注意了最后的红框部分匹配的是ooo和ooo,并不是goo !!!

        5.过滤g开头后面至少跟一个o

            grep '^go\{1,\}' a.txt

            image.png

            grep '^go*' a.txt

            image.png

        6.过滤任意两个字符之间有oo

            grep '.oo.' a.txt

            image.png

未经允许不得转载:天府数据港官方信息博客 » 正则表达式之基础篇——基本正则

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机