• Linux正则表达式grep


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

    1. grep匹配模式

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

    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

    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

  • 相关阅读:
    转:孙振耀谈人生(推荐)
    自绘按钮的实现
    数据结构知识
    Direct Show采集图像实例
    视觉跟踪
    改变对话框控件的颜色
    笔试题
    CBitmapButton的使用
    Rotor (SSCLI) 2.0 登场!
    Under the hood: 从Win32 SEH到CLI异常处理模型
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/4236254.html
Copyright © 2020-2023  润新知