美文网首页
shell的正则表达式的"+","?","."

shell的正则表达式的"+","?","."

作者: llicety | 来源:发表于2017-11-23 16:22 被阅读0次

    这里只想强调"+","?","."这三个
    "+"
    匹配一个或多个前面紧挨着+的那一个字符。如:“gr+”,匹配一个g后面加一个r或者多个r的gr的字符串,比如grr,其实"gr+"看成g(r+)就更好理解了。


    image.png

    截图中的ggr中的第一个g并不是红色,说明了"+"只代表一个或者多个"+"前面的紧挨着"+"的那一个字符,即r,而不代表一个或者多个"gr",或者是"g"和"r"

    "?"
    匹配零个或一个前面紧挨着?的那一个字符。如:'gr?',匹配一个g后面接0个或者一个r的字符串,比如g (0个r)或者gr (1个r),同理"gr?"看成g(r?)就更好理解了。。


    image.png

    看到上面的那个图,可能就会有人问,为什么ggr是也被匹配上了。那么看下面这个图面你应该就会明白为什么ggr是红色,也被匹配上了。


    image.png
    其实ggr是两个匹配结果,匹配了一个g 和一个gr,只是他们恰好在一块儿,看似是匹配了ggr。

    "."
    匹配一个非换行符的字符,跟它前后的字符没有任何关系,就代表一个非换行字符


    image.png

    其实就是gr.+在这里和grr......以及gr.{6}是一样的,但是看完下一个图,也许又懵逼了


    image.png
    为什么全红了,都匹配上了,刚刚不是说"."只代表一个非换行字符么,一个喔!其实这里是匹配了一个g,一个r,一个e等等,所有的都是单个匹配上的,只是他们连着显示的,感觉像是匹配了gregrrep一个整体。也就是gregrrep中的任何一个字符都和"."匹配。

    相关文章

      网友评论

          本文标题:shell的正则表达式的"+","?","."

          本文链接:https://www.haomeiwen.com/subject/mvvzvxtx.html