zoukankan      html  css  js  c++  java
  • 1116Xlinux初学习之正则表达式和通配符

    一、正则表达式:

    元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。

    正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。

    正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。

                            基本的正则表达式元字符集合及其意义

    符号 意义
    * 0个或多个在*字符之前的那个普通字符
    . 匹配任意字符
    ^ 匹配行首,或后面字符的非
    $ 匹配行尾
    [] 匹配字符集合
    转义符,屏蔽一个元字符的特殊意义
    <> 精确匹配符号
    {n} 匹配前面字符出现n次  P.43
    {n,} 匹配前面字符至少出现n次
    {n,m} 匹配前面字符出现n~m次

    1.“*”符号

      zha*ng  :“*”前面的普通字符是a,就表示匹配a字符0次或多次,如:zhng、zhang、zhaaaang

      (根据测试可以不包括前面的字符,即匹配0次)

    2.匹配空行

      匹配行首的^和匹配行尾的$组合起来“^$”可以用来匹配空行,如果需要匹配只包含一个字符的行,可以用“^.$”

    3."[]"符号

      匹配字符集合,支持穷举方法列出字符集合的所有元素,也支持使用“-”符号表示字符集合范围。

      [12345] 等价于 [1-5]

      我们知道“^”符号表示匹配行首,但是,“^”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号。

      [^b-d]  :表示不再b~d范围内的字符

      [A-Za-z] [A-Za-z]*  :匹配任意英文单词

    二、正则表达式的扩展:

                    扩展的正则表达式元字符及其意义

    符号 意义
    匹配0个或一个在其之前的那个普通字符
    + 匹配一个或多个在其之前的那个普通字符
    () 表示一个字符集合或用在expr中
    | 表示“或”,匹配一组可选的字符

    1.“?”符号

      (根据测试可以不包括前面的字符,即匹配0次)

    2."()"符号和“|”符号

      "()"符号和“|”符号通常结合使用,表示一组可选字符的集合。

      re(a|b|c)d  等价于  re[abc]d

      "|"符号也可以表示多个正则表达式的“或”关系。

      grep -E “zha?ng|zhi”  文件

    三、通配符:

    bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。

    bash shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能。

    通配是把一个包含通配符的非具体文件名扩展存储在计算机,服务器或者网络上的一批具体文件名的过程。(可以看出通配主要应用匹配文件名上,而正则主要应用于字符串上)

    最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等。

    符号 意义
    * 任意位的任意字符
    一个任意字符
    ^ 取反

    1.“{}”符号

      表示一组表达式的集合。如:{[a-h]*.awk ,a?.txt}

  • 相关阅读:
    【转】Python爬虫(5)_性能相关
    【转】Python爬虫(4)_selenium模块
    【转】Python爬虫(3)_Beautifulsoup模块
    【转】Python爬虫_示例2
    【转】Python爬虫_示例
    linux开机自启动tomcat
    Linux下Tomcat启动,停止命令
    Linux下tomcat启动Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of
    centos7开启关闭80端口
    centos安装JDK
  • 原文地址:https://www.cnblogs.com/qcfeng/p/6070205.html
Copyright © 2011-2022 走看看