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

    grep 与正则表达式:
    1.grep程序
                 Linux下有文本处理三剑客--grep sed awk
                 grep:文本行过滤器
                 sed:文本行编辑器(流编辑器)
                 awk:报告生成器(做文本输出格式化)
                 grep
                      包括三个命令:grep egrep fgrep,它们是用来进行行模式(pattern)匹配
                      egrep = grep-E//使用扩展的正则表达式进行匹配
                      grep = fast grep//只是用文件通配符进行匹配
                      *grep默认使用正则表达式进行文本匹配*
                 grep的用法:
                       grep[option]...PATTERN [filename]                       invert(反转)
                 grep的常见选项--option
                       -E  支持使用扩展的正则表达式(ERE)(regexp正则表达式的简写)
                       -P  使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式的引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)
                       -i    忽略大小

                       -v   进行反选

                       -o   仅仅输出匹配的内容(默认输出的是匹配到行)

                       --color=auto 语法着色

                       -n   显示行号

                       -w 匹配固定单词
    PATTERN--正则表达式

                       作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的内容来执行,如果使用特殊字符本身含义,就需要进行转义;

                      1.字符匹配

                                        .任意一个字符?

                                        [ ]范围内的任意一个字符

                                        [^]范围外任意一个字符

                                        字符类:[:digit:][:alnum:][:alpha:][:lower:][:upper:][:space:    

                      2.次数匹配

                                        *匹配前面一个字符0次到无数次

                                        ?匹配前面的字符0次到1次

                                         + 匹配前面的字符1次到n次

                                         {m}匹配前面的字符m次

                                         {m,n}匹配前面的字符m到n次

                                         {0,n}匹配前面的字符0次到n次

                                          {m,}匹配前面的字符至少m次
                      3.位置锚定

                                        ^ 锚定行首

                                        $ 锚定行尾

                                         锚定词首和锚定词尾

                                        > 锚定词尾

                                        <锚定词尾

                                                            < oot>rooter
                      4.分组

                             abc* abccccc abc看成一个整体

                             () 示例:(abc)* abcabcabc abcccc

                             **分组特性:默认情况下,Linux系统会为分组指定变量,变量表示形式12345......

                             示例:(ab+(xy)*) 其中1=ab+(xy)*,2=xy

    练习:

  • 相关阅读:
    LeetCode 914. 卡牌分组
    LeetCode 999. 车的可用捕获量
    LeetCode 892. 三维形体的表面积
    21航电5E
    min25筛 学习笔记
    牛客多校6G
    2021航电多校3
    2021牛客多校H
    [模版] 快速傅里叶变换
    2021牛客多校第五场
  • 原文地址:https://www.cnblogs.com/jklp-1234/p/11350464.html
Copyright © 2011-2022 走看看