zoukankan      html  css  js  c++  java
  • Linux初识(八)正则表达式

    正则表达式

    一、什么是正则表达式

       正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

      正则表达式用于字符串处理、表单验证等场合,实用高效。

       生活中处处都是正则:

          比如我们描述:4条腿

          你可能会想到的是四条腿的动物或者桌子,椅子等

        继续描述:4条腿,活的

              就只剩下四条腿的动物这一类了

        在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面就用grep解释正则。

    二、grep

    参数

    -n  :显示行号   比如:#grep -n 'root' /etc/passwd
    -o  :只显示匹配的内容   比如:#grep -o 'root' /etc/passwd
    -q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容 比如:#grep -q 'root' /etc/passwd   #echo $?

    -l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,比如:#grep -rl 'root' /etc/passwd
    -A  :如果匹配成功,则将匹配行及其后n行一起打印出来, 比如:#grep -A 2 'root' /etc/passwd
    -B  :如果匹配成功,则将匹配行及其前n行一起打印出来,比如:#grep -B 1 'root' /etc/passwd
    -C  :如果匹配成功,则将匹配行及其前后n行一起打印出来,比如:#grep -C 2 'root' /etc/passwd
    -c  :如果匹配成功,则将匹配到的行数打印出来,比如:#grep -c 'root' /etc/passwd
    -E  :等于egrep,扩展,比如:#grep -E 'hello' a.txt
    -i  :忽略大小写,比如:#grep -i 'ab' a.txt

    -v  :取反,不匹配,比如:#grep -v 'hello' a.txt
    -w:匹配单词,比如:#grep -w ‘hello’ a.txt

    grep种类

    grep
    fgrep
    pgrep
    egrep

    正则介绍

    ^ 行首  比如:#egrep '^root' 1.txt
      $ 行尾  比如:#egrep '$root' 1.txt
    . 除了换行符以外的任意单个字符    比如: #egrep 'a.c' 1.txt
      * 前导字符的零个或多个    比如  : #egrep 'ab*c' 1.txt
      .* 所有字符       比如:  #egrep 'a.*c' 1.txt
      [] 字符组内的任一字符   比如: # egrep [abcde] 1.txt
      [^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)     比如: # egrep [^abcde] 1.txt
    ^[^] 非字符组内的字符开头的行   比如: # egrep ^[^abcde] 1.txt
    [a-z] 小写字母  比如: # egrep [a-z] 1.txt
    [A-Z] 大写字母  比如: # egrep [A-Z] 1.txt
    [a-Z] 小写和大写字母   比如: # egrep [a-Z] 1.txt
    [0-9] 数字   比如: # egrep [0-9] 1.txt

    {n} 匹配 {}前字符出现的n次的字符串  ,比如:# egrep 'ab{3}c' 1.txt

    ?  匹配 出现0或1次   比如:# egrep 'ab?c' 1.txt

    |  管道分割符,“.....或者....”  比如:#egrep 'ab{4}c|ab{8}c' 1.txt   ,#egrep 'compan(y|ies)' 1.txt

    {0,}  表示{}前的字符出现0到无穷次  ,比如:# egrep 'ab{0,}c' 1.txt


      

  • 相关阅读:
    yun2win-iOS端IM SDK使用方法
    题解
    普通乘法,加法等时间复杂度计算
    noip2014 解方程(本博文转载于http://blog.csdn.net/popoqqq/article/details/40984859,略有删减)
    检查
    关于对拍 (来自老胡)
    2014 NOIP 赛前自我整理提醒。
    USACO 2014 JAN 滑雪录像
    Vue 双向绑定原理
    Vue 路由
  • 原文地址:https://www.cnblogs.com/guozhenle/p/6933747.html
Copyright © 2011-2022 走看看