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-------------------------------------------------------------------------

    爱生活,爱工作。

  • 相关阅读:
    sql2slack alash3al 开源的又个轻量级工具
    pgspider fetchq 扩展docker镜像
    godns 集成coredns 的demo
    godns 简单dnsmasq 的dns 替换方案
    aviary.sh 一个基于bash的分布式配置管理工具
    使用coredns 的template plugin实现一个xip 服务
    nginx 代理 coredns dns 服务
    基于nginx proxy dns server
    几个不错的geodns server
    spring boot rest api 最好添加servlet.context-path
  • 原文地址:https://www.cnblogs.com/Tanwheey/p/10029361.html
Copyright © 2011-2022 走看看