zoukankan      html  css  js  c++  java
  • grep

    1.grep //全面搜索正则表达式并把行打印出来

    正则表达式是一种符号表示法,用于识别文本模式。Linux处理正则表达式的主要程序是grep。grep搜索与正则表达式匹配的,并将结果输送至标准输出。

    1. grep匹配模式

    grep按下述方式接受选项和参数(其中,regex表示正则表达式)

    1
    grep [options] regex [files]

    其中options主要为下表:

    选项 含义 功能描述
    -i ignore case 忽略大小写
    -v invert match 不匹配匹配的,即取反
    -l file-with-match 输出匹配的文件名
    -L file-without-match 输出不匹配的文件名
    -c count 输出匹配的数目(行数)
    -n number 输出匹配行的同时在前面加上文件名及在文件名中的行数
    -h no-filename 抑制文件名的输出

    举例说明

    假设有三个文件del1、del2、del3三个文件的内容如下

    例子

    2. 特殊字符

    符号 含义 举例
    ^ 开始标记 "^abc"满足的例子abc、abcd
    ^ 非(在[]内) "[^abc]"满足的例子:ddd、mpd
    $ 结束标记 ”abc$”满足的例子abc、mmabc
    . 任意字符 "a.c"满足的例子abc、fapcc
    < 匹配单词开始 "<abc"满足的例子abc、abcd
    > 匹配单词结束 "abc>"满足的例子abc、pmrabc
    | "AAA|BBB"满足的例子AAA、BBBpp

    注:grep 支持标准正则表达式搜索,而“|” 等这些特殊“符号”,属于扩展表达式,使用时需要加参数" -E"

    3. 范围

    符号 含义 举例
    ? 匹配前一个字符0或1次 "abc?"满足的例子ab、mabcd
    * 匹配前一个字符≥0次 "abc*"满足的例子abbb、abcdk
    + 匹配前一个字符≥1次 "abc+"满足的例子abcd、abcccdd
    {} {m}、{m,n}、{m,}、{,n}分别为匹配前一个字符m次、m到n次、≥m次、≤n次 "abc{3,5}"满足的例子abcccc、abcccccc
    [] []内如果不是范围,选其一;是范围的话,范围内选其一 "m[abc]p"满足的例子acpd;m[1-9]p满足的例子m8pp
    () 将候选的所有元素放在()内,用|隔开 "a(1|2|3)bc"满足的例子a1bc、mba3bcd

    注意:{}在郑则表达式中需要转移,而{}()不需要。

        这个地方,最难理解的就是“范围”二字,如第一个“?” 这个匹配的地方是指?前面这个字母,可以没有或者有    

    注意理解{}范围的例子:

    4. 标准字符类

    字符类 释义
    [:alnum:] 字母和数字,与[A-Za-z0-9]等价
    [:word:] [:alnum:]加上下划线_
    [:alpa:] 字母,与[A-Za-z]等价
    [:digit:] 数字,与[0-9]等价
    [:xdigit:] 十六进制字符,与[0-9A-Fa-f等价]
    [:blank:] 空格和制表符
    [:graph:] 可见字符,靠扩33~126
    [:lower:] 小写字母
    [:upper:] 大写字母
    [:print:] 可打印字符
    [:space:] 空白字符,等价于[ vf]
    [:punct:] 标点符号
    [:cntrl:] ASCII控制码,包括字符0~31以及127

    例子

    可视化正则表达式

    工具:Regexper

    转载自http://www.cnblogs.com/kaituorensheng/p/4236254.html

    书山有路勤为径,学海无涯苦作舟。

  • 相关阅读:
    微信JS SDK Demo
    微信JS SDK使用权限签名算法
    微信JS接口
    微信分享JS接口失效说明及解决方案
    微信支付开发(2) 扫码支付模式一
    不懂技术的人不要对懂技术的人说这很容易实现
    独立开发者经验分享
    微信公开课PRO版张小龙演讲全文
    RC4加密算法的原理及实现
    上传APP加入视频预览--精简点名
  • 原文地址:https://www.cnblogs.com/sangmu/p/6660456.html
Copyright © 2011-2022 走看看