• 【Linux从零开始】:5.正则表达式相关知识


       基础正则表达式:                                                                               

       1.语系对正则表达式的影响:   

        不同的语系对各种字母的编码顺序是不同的

          例如 LANG=C 时 : 0 1 2 3 4... A B C...a b c...z

             LANG=zh_CN时 : 0 1 2 3 4... A a B b C c...z

         当我们写[A-Z]的时候,2种语系所囊括的字符是不同的,所以,写正则表达式之前一定要先确定语系噢。

       2.为了避免语系不同所造成的编码问题,所以又一些特殊符号可以代表相对应的字符:   

    特殊符号 代表意义
    [:alnum] 代表英文大小写字符以及数字: 0-9 A-Z a-z 
    [:alpha] 代表任何大小写字符: A-Z a-z
    [:digit] 代表数字: 0-9
    [:lower] 所有小写字符: a-z
    [:upper] 所有大写字符: A-Z

      3. 命令工具的使用:   

      1. grep:

        -a : 将binary文件以text文件的方式查找数据;
          -c : 计算找到 '查找字符串' 的次数;
           -i : 忽略大小写;
          -n : 顺便输出行号;
          -v : 反向选择;
          --color=auto : 将找到的关键字高亮(一般自动开启) 可以使用alias 来设定: alias grep='gerp --color=auto' (unalias来解除设置)
          -A : 后面可加数字, 为after的意思,除了列出该行外,后续的n行也会列出
        -B : 后面可加数字, 为before的意思,除了列出该行外,前面的n行也会列出

       4.基础正则表达式字符:   

    RE字符 意义与范例
    ^word

    意义:待查找字符串出现在行首

    范例:grep -n '^abc' temp.txt

    word$

    意义:待查找字符串出现在行尾

    范例: grep -n 'r$' temp.txt

    .

    意义:代表此位置一定有一个任意字符的字符

    范例: grep -n 'abc.abc' temp.txt   

    \

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

    范例: grep -n \' temp.txt 查找包含'的行

    *

    意义:重复零个或者多个符号前的字符

    范例: grep -n 'gg*' temp.txt 会查找出包含g,gg,ggg...的行

    [list]

    意义:包含RE中的一个字符(选择一个)

    范例: grep -n 'ab[12345] temp.txt 查找初包含ab1 ab2 ab3...的行

    [n1-n2]

    意义:[list]的特例

    范例:[A-Z] [0-9]  也可以使用[[:alnum]] [[:alpha]]

     [^list]

    意义:不出现^后的字符

    注意:^符号在[]中表示不出现之后字符,在''中表示句首

    \{n,m\}

    意义:连续n到m个之前字符,m为无穷大的时候可以省略

    范例:grep -n 'go\{2,3\}' temp.txt 

       

    正则表达式当然是非常有用的,同时还有awk等几个工具也都非常方便,但由于最近也不怎么用的上,所以就先了解到这,之后需要再深入研究吧.

  • 相关阅读:
    第五周总结
    10.24号进度报告
    10.23日进度报告
    10.22日进度报告
    10.21日进度报告
    10.20号进度总结
    10.19日进度总结
    第四周总结
    10.18日进度博客
    2020下第六周总结
  • 原文地址:https://www.cnblogs.com/VortexPiggy/p/2443416.html
Copyright © 2020-2023  润新知