• 第48天-正则表达式(2013.09.25)


      1.regular expression(正则表达式)

      2符合某个模式(pattern)的一类字符串应该包含 : 

            字符类(character class): 在模式中表示一个字符,但是取值范围是一类字符中的任意一个

            数量限定符(Quantifier):邮件地址的每一部分可以有一个或多个x字符,IP地址的每一部分可以有1-3个y字符

            各种字符类以及普通字符之间的位置关系:还有位置限定符的概念

      3.正则表达式 : 规定一些特殊语法表示字符类,数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示某一个模式

      4.IP地址可以拆分成(0-9 10-99 100-199 200-249 250-255)  

      5.字符类

    字符 含义  举例
    . 匹配任意一个字符 abc.可以匹配abcd,abc9等
    [] 匹配括号内的任意一个字符 [abc]d可以匹配ad,bd,cd
    - 在[]括号内表示字符范围 [0-9a-fA-F]可以匹配一位十六进制数字
    ^ 位于[]括号内的开头,匹配除括号中的字符之外的任意一个字符 [^xy]匹配除xy之外的任一字符
    [[:xxx:]] grep工具预定义的一些命名字符类

    [[:alpha:]]匹配一个字母

    [[:digit:]]匹配一个数字

      数量限定符

    字符 含义 举例
    ? 紧跟在它前面的单元应匹配零次或一次 [0-9]?.[0-9]匹配0.0,2.3,.5等。由于.在正则表达式中是一个特殊字符,所以需要用转义一下,取字面值
    + 紧跟在它前面的单元应匹配一次或多次 [a-zA-Z0-9_.-]+@[a-ZA-Z0-9_.]+.[a-ZA-Z0-9_.-]+匹配Email地址
    * 紧跟在它前面的单元应匹配零次或多次 [0-9][0-9]*匹配至少一个数字等价于[0-9]+
    {N} 紧跟在它前面的单元应精确匹配N次 [1-9][0-9]{2}匹配从100-999的整数
    {N,} 紧跟在它前面的单元应匹配至少N次 [1-9][0-9]{2,}匹配三位(含三位)以上的整数
    {,M} 紧跟在它前面的单元最多匹配M次 [0-9]{,1}
    {N,M} 紧跟在它前面的单元至少匹配N次,最多匹配M次 [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}匹配IP地址

      位置限定符

    字符 含义 举例
    ^ 匹配行首的位置 ^Content匹配位于一行开头的Content
    $ 匹配行末的位置 ;$匹配位于一行结尾的;号^$匹配空号
    < 匹配单词开头的位置 <th匹配...this,但不匹配ethernet, tenth
    > 匹配单词结束的位置 p>匹配...leadp,但不匹配parent, sleepy
     匹配单词开头或结尾的位置 at匹配。。。at ...,但不匹配cat,atexit, batch
    B 匹配非单词开头和结尾的位置 BatB匹配battery,但不匹配... attend, hat...

      其它特殊字符

    字符 含义 举例
    转义字符,普通字符转义为特殊字符,特殊字符转义为普通字符 位置限定符中的内容,,特殊字符.写成.以及写成\当成普通字符来匹配
    () 将正则表达式的一部分括起来组成一个单元,可以对整个单元使用数量限定符 ([0-9]{1,3}.){3}[0-9]{1,3}匹配IP 地址
    | 连接两个子表达式,表示或的关系 n(o|either)匹配no或neither

      6.sed : 流编辑器,在shell脚本和makefile中作为过滤器使用非常普遍

          常用的sed命令

    /pattern/p 打印匹配pattern的行
    /pattern/d 删除匹配pattern的行(从结果删除而不改变源文件)
    /pattern/s/pattern1/pattern2 查找符合pattern的行,将该行的第一个匹配pattern1的字符串替换为pattern2
    /pattern/s/pattern1/pattern2/g 查找符合pattern的行,将该行的所有匹配pattern1的字符串替换为pattern2

      7.awk以行为单位处理文件 : 不仅能处理以行为单位还能处理以列为单位处理文件

          缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab

          $1,$2:分别表示第一列,第二列

          $0 : 整个当前行

          常用的awk内建变量

    FILENAME 当前输入文件爱女的文件名,该变量是只读的
    NR 当前行的行号,该变量是只读的,R代表record
    NF 当前行所拥有的列数, 该变量是只读的,F代表field
    OFS 输出格式的列分隔符,缺省是空格
    FS 输入文件的列分隔符,缺省是连续的空格和Tab
    ORS 输出格式的行分隔符,缺省是换行符
    RS 输入格式的行分隔符,缺省是换行符
  • 相关阅读:
    EasyARM-iMX283A的Linux 开发环境构建
    linux指令tar笔记
    使用cuteFTP与虚拟机交互文件---安装ftp服务
    SecureCRT显示乱码的解决办法
    【转】简明 Vim 练级攻略
    图像识别___YUV学习手记
    一个简易的软件定时器
    OV7670配置和调试小结
    linux驱动开发( 五) 字符设备驱动框架的填充file_operations结构体中的操作函数(read write llseek unlocked_ioctl)
    hash-1.hash表和hash算法
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3340117.html
Copyright © 2020-2023  润新知