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

    grpe 及正则表达式

    文本查找的需要:grep,egrep,fgrep
    grep: 根据模式,搜索文本,并将符合模式的文本行显示出来。
    Pattern : 文本字符以及正则表达式的元字符组合而成的匹配条件

    grep [OPTIONS] PATTERN [FILE...]
    -i :忽略大小写
    --color :颜色突出显示
    -v: 显示没有匹配到的行(反向匹配)
    -o : 只显示被模式匹配到的字符串(一个字符串显示为一行)

    * :任意长度字符
    ?:任意单个字符
    []:
    [^]


    正则表达式: RE regular expression REGEXP
    元字符:
    .: 匹配任意单个字符
    []:匹配指定范围内的任意单个字符

    [^]:匹配指定范围外的任意单个字符

    !: 取反

    字符集合: (引用的时候还要加一个 [ ] )
    [:digit:] 数字
    [:lower:] 小写字母
    [:upper:] 大写字母
    [:punct:] 标点符号
    [:space:] 空白字符
    [:alpha:] 所有字母
    [:alnum:] 所有数字和字母

    匹配次数(贪婪模式:尽可能长的匹配):
    * :匹配其前面的字符任意次
    a,b,ab,aab,acb,adb,anib
    a*b :表示a 出现任意次 然后匹配个b ,所以上面能匹配的是,b,ab,aab

    .* :匹配任意长度的任意字符
    a.*b : 则表示匹配a开头b结尾的字符串,中间任意啥都行 . 表示任意字符,* 表示匹配 . 任意次。

    ?: 匹配其前面的字符1次或0次
    a?b
    {m,n}匹配其前面的字符至少m次,至多n次
    是转义字符,避免被shell解析为命令行展开
    a{1,3}b 匹配ab,a出现至少1次,最多3次的字符 --> ab,aab,aaab
    a.{1,3}b a和b之间出现任意字符,最少1个,最多3个

    位置锚定:
    ^ : 锚定行首,此字符后面的任意内容必须出现在行首
    $ : 锚定行尾,此字符前面的任意内容必须出现在行尾
    ^$: 空白行

    <或: 锚定词首,其后面的任意字符必须作为单词首部出现
    >或: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

    分组:
    ()
    (ab)* : ab作为一个整体,可以出现任意次
    后向引用
    1:引用第一个左括号以及与之对应的右括号所包括的所有内容 (ab).*1
    2:引用第二个左括号以及与之对应的右括号所包括的所有内容 (ab).*2
    3:引用第三个左括号以及与之对应的右括号所包括的所有内容 (ab).*3

    正则表达式:
    Basic REGEXP: 基本正则表达式
    Extended REGEXP:扩展正则表达式。

    基本正则:
    .:
    []:
    [^]:

    次数匹配:
    *:
    ?: 0或1次
    {m,n} :至少m次,至多n次

    锚定:
    ^:
    $:
    <,:
    >,

    分组:
    ():
    1,2,3....

    grep: 使用基本正则表达式定义的模式来过滤文本的命令:
    -i:忽略带大写
    -v:反向搜索
    -o:只显示匹配到的字符串
    --color:显色
    -E:使用扩展正则表达式
    -A #: 表示某一行匹配到了,其后面的#行也显示出来,每一组用 -- 分隔
    -B #: 表示某一行匹配到了,其前面的#行也显示出来,每一组用 -- 分隔
    -C #:表示某一行匹配到了,其上下的#行也显示出来,每一组用 -- 分隔

    扩展的正则表达式:
    字符匹配:
    . :任意单个字符
    []:指定范围内的单个字符
    [^]: 指定范围外的单个字符

    次数匹配:
    *:匹配其前字符匹配任意次
    ?:匹配其前字符0次或1次
    +:匹配其前字符至少1次
    {m,n}:至少m次,至多n次 (不需要再使用 )

    位置锚定:
    ^: 行首
    $: 行尾
    <,: 词首
    >,:词尾

    分组:
    (): 分组
    1,2,3....
    或者
    |:or

    group -E = egroup

    1-255的数字正则表达式:
    <[1-9|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]]>


    IPV4:
    5类: ABCDE 类
    A:1-127
    B:128-191
    C:192-233
    匹配IP

    fgrep : 不支持正则表达式( 执行速度快)

  • 相关阅读:
    TCP/IP学习笔记(3)-IP、ARP、RARP协议
    TCP/IP学习笔记(2)-数据链路层
    tcp/ip学习笔记(1)-基本概念
    实体bean里面不要轻易加transient,反序列回来之后会变成null
    [Maven实战-许晓斌]-[第三章] Mave使用入门二(在IDE中的使用) [第四章] 案例的背景介绍
    [Maven实战-许晓斌]-[第三章] Mave使用入门
    [Maven实战-许晓斌]-[第二章]-2.7-2.8 Mave安装的最优建议和安装小结
    [Maven实战-许晓斌]-[第二章]-2.6 NetBeans上面安装Maven插件
    ifdown
    ifup
  • 原文地址:https://www.cnblogs.com/thelovelybugfly/p/10743634.html
Copyright © 2011-2022 走看看