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

    一.正则表达式

        正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户清一达到查找,删除,替换某特定字符串的处理程序。

        正则表达式基本上是一种表示法,只要工具程序支持这种表示法,那么该工具程序就可以用来作为正则表达式的字符串处理之用。

     

    二.语系对正则表达的影响

        由于不同语系编码数据并不相同,会造成数据选取结果的区别。所以,使用正则表达时,需要特别留意当时的语法环境为何,否则可能会发现与别人不相同的选取结果。而为了避免这些所造成的英文与数字的选取问题,就需要了解一些特殊符号

        特殊符号    代表意义

        [:alnum:]       代表英文大小写字符及数字,即0-9,A-Z,a-z

        [:alpha:]       代表任何英文大小写字符,即A-Z,a-z

        [:blank:]       代表空格健与Tab键

        [:cntrl:]       代表键盘上面的控制按键,即包括CR,LF,Tab,Del等

        [:digit:]       代表数字而已,即0-9

        [:graph:]       除了空格符外的其他所有按键

        [:lower:]       代表小写字符,即a-z

        [:print:]       代表任何可以被打印出来的字符

        [:punct:]       代表标点符号,即"'?!;:#$

        [:upper:]       代表大写字符,即A-Z

        [:space:]       任何会产生空白的字符,包括空格键CR等

        [:xdigit:]      代表十六进制的数字类型,因此包括0-9,A-F,a-f的数字与                  字符

     

    三.grep的一些高级参数

    grep

    格式: grep [-acinv] [-A] [-B] '查找字符串' filename

    -a:将binary文件以text文件的方式查找数据

    -c:计算找到查找字符串的次数

    -i:忽略大小写的不同

    -n:输出行号

    -v:反向选择

    -A:后面可加数字,为after的意思,除了列出该行外,后续的n行也列出来

    -B:后面可加数字,为befer的意思,除了列出该行外,前面的n行也列出来

     

    基础正则表达式字符

    RE字符

    意义

    ^word

    待查找字符串在行首

    Word$

    待查找字符串在行尾

    .

    以表一定有一个任意的字符

    转义字符,将特殊符号的特殊意义去除

    *

    重复0到无穷多个的前一个字符

    [list]

    从字符集合的RE字符里面找出想要选取的字符

    n1-n2

    从字符集合的RE字符里面找出想要选取的字符范围

    [^list]

    从字符集合的RE字符里面找出不要的字符串或范围

    {n,m}

    连续n到m个的前一个RE字符,若为{n}则是连续n个的前一个RE字符,若为{n,}则是连续n个以上的前一个RE字符

     

     

     

    四.sed工具

        sed 【-nefr】 【动作】

    -n:使用安静模式,在一般的sed用法中,所有来自STDIN的数据一般都会被列到屏幕上,但如果加上-n参数后,则只有经过sed特殊处理的那一行才会被列出来

    -e:直接在命令行模式上进行sed动作编辑

    -f:直接将sed的动作写在一个文件内,-f filename则可以执行filename内的sed动作

    -r:sed动作支持的是扩展型正则表达式的语法

    -i:直接修改读取的文件内容,而不是由屏幕输出

    动作说明: 【n1【,n2】】function

    n1,n2:未必会存在,一般代表选择动作的行数,距离来说,如果我的动作时需要在10-20行之间进行的,则10,20【动作行为】

    function有下面这些参数:

    a:新增,a后面可接字符串,而这些字符串会在新的以行出现

    c:替换,c后面可接字符串,这些字符串可以替换n1,n2之间的行

    d:删除,因为时删除,所以d后面通常不接任何参数

    i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现

    p:打印,也就是将某个选择的数据打印出来,通常会与参数sed -n一起运行

    s:替换,可以直接进行替换的工作。

     

     

    扩展正则表达式

    RE字符

    意义与范例

    +

    重复一个或一个以上的前一个RE字符

    ?

    零个或一个的前一个RE字符

    |

    用或的方式找出数个字符串

    ()

    找出字符串

    ()+

    多个重复组的判别

     

    五.awk

        awk '条件类型1{动作1} 条件类型2{动作2}...' filename

    awk主要是处理每一行的字段内的数据,而默认的字段的分隔符为空格键或Tab键。

  • 相关阅读:
    DNS正向解析实现
    基于bind软件部署DNS服务器
    DNS解析工具使用案例
    DNS服务工作原理
    3
    .deb/.whl/.tgz/.tar/gz软件包安装方式(Ubuntu)
    博客系列目录
    Databricks 第3篇:pyspark.sql 通过JDBC连接数据库
    Databricks 第2篇:pyspark.sql 简介
    数据预处理 第4篇:数据预处理(sklearn 插补缺失值)
  • 原文地址:https://www.cnblogs.com/zhengyipengyou/p/10284425.html
Copyright © 2011-2022 走看看