• 正则表达式使用注意点


    #include <stdio.h>

    int main(void)
    {
    printf("hello\n");
    printf("I am mini2440. And Wish you be a best man!\n");
    return 0;
    }

    int main(void)
    {
    printf("hello\n");
    printf("I am mini2440. And Wish you be a best man!\n");
    return 0;
    }

    intintint main(void)

    {
    printf("hello\n");
    printf("I am mini2440. And Wish you be a best man!\n");
    return 0;
    }

    ^和*的使用

    ^只允许在一行的开始匹配字符或单词。

    比如 grep ^int hello.c

    但是 grep ^* hello.c 这样结果是空

    我觉得应该这样理解,^必须要给定一个指定的匹配模式,否则它不知道在每一行寻找以什么为开头的。

    grep ^int*int hello.c 可以找到结果

    grep ^in*t hello.c 可以找到结果

    grep -r ^in*t hello.c 可以找到结果

    grep ^i*t hello.c   却找不到结果???  //0到任意次的i + t                      结果当然是空

    grep ^*t hello.c    找不到结果???    //0到任意次的空字符 + t               结果当然是空

    grep ^* hello.c    找不到结果???     //0到任意次的空(即为空)(首行) 结果当然是空

    grep * hello.c      也找不到结果???  //0到任意次的空字符                      结果当然是空

    在群里大家的帮助下终于搞明白了,

    * 表示前面字符的0到任意次重复

    l* 就表示 0到任意次的l的组合

    摘自鸟哥:

    因为 * 代表的是『重复 0 个或多个前面的  字符』的意义, 因此,『o*』代表癿是:『拥有空字符或一个 o 以上的字符』,

    特别注意,因为允讲空字符(就是有没有字符都可以的意思),因此,『 grep -n 'o*' regular_express.txt 』将会把所有的数据都打印出杢屏幕上!

    那如果是『oo*』呢?则第一个 o 肯定必须要存在,第二个 o 则是可有可无的多个 o , 所以,凡是含有 o, oo, ooo, oooo 等等,都可以被列出来~

    [ou] .*t
    匹配以字母o或u开头,后跟任意一个字符任意次,并以t结尾的任意字母。

    注意^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。
    [^a-zA-Z]

    shell中使用 \ 或者 '' "" 输入特殊字符

    grep \. 匹配.

    但是在shell中敲入时,grep \\. hello.c  或者 grep ‘\.’ hello.c 或者 grep "\." hello.c

    这是因为:

    shell的\也是转义 如果你用grep \. hello.c  

    实际传入的参数是. 而不是\. 

    如果使用了'' 里面的表示\. 中\当字符处理了

    或者\\ 已经把\当一般字符处理 故 可以传\

    使用\{\}匹配模式结果出现的次数

    pattern\{n\} 匹配模式出现n次。
    pattern\{n,\} 匹配模式出现最少n次。
    pattern\{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。


    grep命令使用

    http://baike.baidu.com/view/1057278.htm

    学习正则表达式教程: 张子阳 写的 正则表达式

  • 相关阅读:
    Behavior Targeting 技术研究
    LINQ的Distinct总结
    当为业务逻辑层(BLL,Service)提供基类之后,程序变得了更加面向对象了
    MVC中,查询以异步呈现,分页不用异步的解决方案
    基础才是重中之重——面向抽象编程(抽象类的多态性)
    基础才是重中之重——派生类集合与基类集合可以相互转换吗?
    让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能
    转发一个最新HEVCH.265码流分析软件
    PHP性能优化大全(整理)
    “灭”了国外的mini sql !
  • 原文地址:https://www.cnblogs.com/wangyuezhuiyi/p/2432757.html
Copyright © 2020-2023  润新知