zoukankan      html  css  js  c++  java
  • 学以致用二十一-----正则表达式的一个误区,再引申开

    正则表达式关于 ^ 和 $的描述

    ^  匹配输入字符串的开始位置

    $ 匹配输入字符串的结尾位置

    然后我想当然的认为 ^匹配一串字符串的开头,$匹配一串字符串的结尾了。具体这个误解如下

     

    我想找到以 inet开头的字符串。

    于是我通过grep来匹配        ifconfig  eno16777728 | grep ‘^inet’ 结果

    结果为空,what? 不是说好的匹配开头吗?有什么地方不对呢。

    原来是我一直理解错了。 ^ 输入字符串的开始位置,是从一行的起始位置匹配。空格也是一个字符

    如:

    有结果输出。以en开头的被匹配出来了。en是最开始的位置。 那为何inet 没有被匹配输出呢。原因是 inet前面有空格或者是制表符。因此是无法匹配到的。

    可以通过另一个例子来试验

    注意 第二行前面是有空格的

    如果将t.txt第二行空格去掉

    那在前面的例子中 ,我要匹配出inet该如何呢

    使用s 或者 <

    s  匹配任何空白字符

    < 匹配单词

    看执行结果

    $ 则是行尾 如

    那比如我要匹配下图中的1怎么办?

    可使用 > 匹配字符串结尾,然后分解步骤

    1、先找到所以的1

    2、 可以看到127.0.0.1那行有inet ,于是找到带inet的

    3、过滤出带inet6的

    4、因为最终是要找到1 ,把第3步骤两个过滤条件换一下

    现在可以看到我想要的结果了

    通过本次学习。掌握了几个知识点

    ^

    $

    s

    <

    >

    [^]  补充,不匹配中括号中的内容

  • 相关阅读:
    网页添加提示音
    poj 2593和poj 2479
    HDU 1558 Segment set
    Ubuntu中conky的安装配置
    Codeforce C. Buns
    HDU 3952 Fruit Ninja
    IE8,IE9,IE10,FireFox 的CSS HACK
    HDU 1086 You can Solve a Geometry Problem too
    Ubuntu中Cairo Dock安装和设置
    Ubuntu 12.04 中安装和配置 Java JDK(转)
  • 原文地址:https://www.cnblogs.com/liongong/p/9799755.html
Copyright © 2011-2022 走看看