• 【转】Linux正则表达式使用指南


    正则表达式是一种符号表示法,用于识别文本模式。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

    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

    例子

    原文地址:http://www.codeceo.com/article/linux-reg-usage.html

  • 相关阅读:
    第二章 Google guava cache源码解析1--构建缓存器
    第十一章 AtomicInteger源码解析
    JVM虚拟机(五):JDK8内存模型—消失的PermGen
    JVM虚拟机(四):JVM 垃圾回收机制概念及其算法
    Java中RunTime类介绍
    JVM虚拟机(三):参数配置
    ZooKeeperEclipse 插件
    zookeeper(五):Zookeeper中的Access Control(ACL)
    zookeeper(六):Zookeeper客户端Curator的API使用详解
    Java并发编程(九):拓展
  • 原文地址:https://www.cnblogs.com/davygeek/p/4242366.html
Copyright © 2020-2023  润新知