zoukankan      html  css  js  c++  java
  • 正则表达式

    表达式是一种字符模式,用于在查找过程中匹配制定的字符。

    元字符通常在Linux中分为两类:

    Shell元字符,由Linux Shell进行解析;正则表达式元字符,由vi、grep、sed、awk等文本处理工具进行解析;正则表达式一般以文本行进行处理。

     关于基本正则表达式和扩展正则表达式的一些用法:

    基本正则表达式:

    元数据 意义和范例
    ^word 搜寻以word开头的行
    例如:搜寻以#开头的脚本注释行
    grep
    n ^# regular.txt
    word$ 搜寻以word结束的行
    例如:搜寻以‘.’结束的行
    grep
    n '.$' regular.txt
    . 匹配任意一个字符
    例如:匹配ee之间有任意一个字符,可以匹配eeeeaeeve,但是不匹配ee
    grep
    n 'e.e' regular.txt
    转义字符
    例如:搜寻’,’是一个特殊字符,在正则表达式中有特殊含义,必须要先转义
    grep 
     regular.txt
    * 前面的字符重复0到多次
    例如:匹配glegoglegooglegooogle等等
    grep
    n 'go*gle' regular.txt
    [list] 匹配[]集合一系列字符中的一个
    例如:匹配glgf
    grep
    n 'g[lf]' regular.txt
    [n1-n2] 匹配[]集合一个字符范围中的一个字符
    例如:匹配数字字符
    grep
    n '[0-9]' regular.txt
    [^list] 匹配[]集合一系列字符(字符集)以外的字符
    例如:grep n '[^o]' regular.txt
    匹配非o字符
    转义字符
    例如:搜寻’,’是一个特殊字符,在正则表达式中有特殊含义,必须要先转义
    grep
    n '' regular.txt
    <word 匹配以word开头
    例如:匹配以g开头的单词
    grep
    n <g regular.txt
    word> 匹配以word结尾
    例如:匹配以tion结尾的单词
    grep
    n tion> regular.txt
    (..) 标签匹配以后使用的字符,最大支持9
    例如:用loveable引导前面做好的标签
    grep -n '(love)ableler'
    x{n} 前面的字符重复n
    例如:匹配google
    grep
    n 'go{2}gle' regular.txt
    x{n,} 前面的字符重复至少n
    例如:匹配googlegooogle
    grep
    n 'go{2,}gle' regular.txt
    x{n1,n2} 前面的字符重复n1n2
    例如:匹配googlegooogle
    grep
    n 'go{2,3}gle' regular.txt

    扩展正则表达式:

         grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。虽然一般情况下,基本正则表达式就够用了。特殊情况下,复杂的扩展表达式,可以简化字符串的匹配。

         扩展正则表达式就是在基本正则表达式的基础上,增加了一些元数据。

    元数据 意义和范例
    x+

    重复前面字符1到多次
    例如:匹配godgoodgoood等等字符串
    grep 
    nE 'go+d' regular.txt

    x?

    匹配01次前面的字符
    例如:匹配gdgod
    grep 
    nE 'go?d' regular.txt

    word1|word2

    或(or)的方式匹配多个字串  
    例如:匹配god或者good
    grep 
    nE 'god|good' regular.txt

    ()

    匹配整个括号内的字符串,原来都是匹配单个字符

    例如:搜寻good或者glad
    grep 
    nE 'g(oo|la)' regular.txt



    元数据     意义和范例

    +       "重复前面字符1到多次

    例如:匹配godgoodgoood等等字符串

    grep –nE go+d’ regular.txt"

    ?       "匹配01次前面的字符

    例如:匹配gdgod

    grep –nE ‘go?d’ regular.txt"

    |       "或(or)的方式匹配多个字串 

    例如:grep nE god|good regular.txt

    匹配god或者good"

    ()       "匹配整个括号内的字符串,原来都是匹配单个字符

    例如:搜寻good或者glad

    grep –nE ‘g(oo|la)’ regular.txt"

    ()       "前面的字符重复0到多次

    例如:匹配glegoglegooglegooogle等等

    grep –nE ‘go*gle’ regular.txt"

    ------------------------------------------------------Tanwheey-------------------------------------------------------------------------

    爱生活,爱工作。

  • 相关阅读:
    索引失效原因总结
    Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
    一次JVM OOM问题的解决
    Java 如何有效地避免OOM:善于利用软引用和弱引用
    一个java内存泄漏的排查案例
    http的理解
    session和cookie区别
    数据库4种范式
    数据库的四种隔离级别
    C++malloc/free与new/delete的区别
  • 原文地址:https://www.cnblogs.com/Tanwheey/p/10029361.html
Copyright © 2011-2022 走看看