正则表达式示例表
字 符 意 义 示 例
* 任意长度的字符串。 a* 表示: 空字符串、aaaa、a…
? 长度为0或者1的字符串。 a? 表示: 空字符串和a。
+ 长度为一个或者多个的字符串。 a+表示:a、aa、aaaaaa…
. 任意字符。 a. 表示:a后跟任意字符。
{} 代表上一规则重复数目、
{1,1,s}包含一组匹配花括号,里面有两个数字和一个字符,表示在指定次数范围内找到字符。 a{3}表示:三个a、
a{1,3}表示:一个到三个a、
a{3,} 表示:大于等于三个a、
{3,7,a}表示在3到7次重复范围内匹配字符a。
[] 集合,代表方括号中任意一个字符。 [ab] 表示:a或者b都可以、
[a-z] 表示:从a到z的字符。
() 组,代表一组字符。 (ab){2}表示:abab。
a/b 同时满足。 a/b表示:字符串a后跟字符串b才能满足要求。
a|b 并列,代表符合a或者符合b都可以 a|b表示: 字符串a或者字符串b都满足要求。
^ 如果放在开头表示代表该规则必须在字符串的开头,其他位置代表字符本身。
如果放在[]中的开头表示对该集合取反,其他位置代表字符本身。 ^a表示:a必须在字符串的开头、
[^a]表示:除了a以外的其他字符。
$ 如果放在最后表示该规则必须放在最后,其他位置代表字符本身。 a$表示:a必须在字符串最后。
\:s 正则表达式用 \:s 表示空格。 a\:sb 匹配 a b。
\:a 正则表达式用 \:a 表示字符与数字。 a\:a 匹配 ab、a6 等。
\:c 正则表达式用 \:c 仅表示字符。 a\:c 匹配 ac等,不匹配a1等。
\:p 正则表达式用 \:p 表示可打印字符。
\:D 正则表达式用 \:d 仅表示数字。 a\:c 匹配 a1等,不匹配ac等。
\:x00 正则表达式用 \:x00 表示ASCII字符。
\:r 正则表达式用 \:r 表示回车。
\:N 正则表达式用 \:d 表示换行。

一 正则表达式
基本元字符集及其含义
    ^     只只匹配行首
    $     只只匹配行尾
    *     只一个单字符后紧跟*,匹配0个或多个此单字符
    [ ]   只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-
            表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]
    \     只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有
           特殊含义。\可以使其失去应有意义
    .     只匹配任意单字符
pattern\      只用来匹配前面pattern出现次数。n为次数
pattern\m    只含义同上,但次数最少为n
pattern\    只含义同上,但pattern出现次数在n与m之间

二 grep 的用法
1 双引号引用
   在grep命令中输入字符串参数时,最好将其用双引号括起来
2 grep选项
   常用的grep选项有:
   -c 只输出匹配行的计数。
   -i 不区分大小写(只适用于单字符)。
   -h 查询多文件时不显示文件名。
   -l 查询多文件时只输出包含匹配字符的文件名。
   -n 显示匹配行及行号。
   -s 不显示不存在或无匹配文本的错误信息。
   -v 显示不包含匹配文本的所有行。

 -o Print each match, but only the match, not the entire line.

3 精确匹配
    使用grep抽取精确匹配的一种更有效方式是在抽取字符串后加\>。假定现在精确抽取48,则为"48\>"
三 grep和正则表达式
     使用正则表达式时最好用单引号括起来,这样可以防止grep中使用的专有模式与一些shell命令的特殊方式相混淆。
1 模式范围
    假定要抽取代码为484和483的城市位置,上一章中讲到可以使用[ ]来指定字符串范围,这里用48开始,
    以3或4结尾,这样抽出484或483。grep '48[34]' data.f
2 不匹配行首
     如果要抽出记录,使其行首不是48,可以在方括号中使用^记号,表明查询在行首开始。
     grep '^[^48]' data.f
3 匹配任意字符
   如果抽取以L开头,以D结尾的所有代码,可使用下述方法,因为已知代码长度为5个字符:
    grep 'L...D' data.f
4 日期查询
    一个常用的查询模式是日期查询。先查询所有以5开始以1 9 9 6或1 9 9 8结尾的所有记录。使用模式5..199[6,8].这意味着第一个字符为 5,后跟两个点,接着是199,剩余两个数字是6或8。
     grep '5..199[6,8]' data.f
    查询包含1998的所有记录的另外一种方法是使用表达式[0-9]\[8],含义是任意数字重复3次,后跟数字8,虽然这个方法不像上一个方 法那么精确,但也有一定作用。
5 使用grep匹配“与”或者“或”模式
    grep命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为2 1 9或2 1 6,方法如下:
    grep -E '219|216' data.f
6 空行
   结合使用^和$可查询空行。使用- n参数显示实际行数:
    grep '^$' data.f
7 grep 与类名的使用
   类等价的正则表达式类等价的正则表达式
[[:upper:]]   [A-Z]               [[:alnum:]] [0-9a-zA-Z]
[[:lower:]]   [a-z]               [[:space:]] 空格或t a b键
[[:digit:]]   [0-9]                [[:alpha:]] [a-zA-Z]

转载于:https://www.cnblogs.com/fjping0606/p/4428885.html

grep和正则表达式相关推荐

  1. 深入浅出grep与正则表达式

    一.什么是正则表达式 很可能我们经常会听到一些有经验的系统管理员告诉我们说:正则表达式非常重要.为什么说正则表达式非常重要呢?因为我们在使用文本编辑的时候或者编写shell脚本的时候经常会使用到查找. ...

  2. grep与正则表达式

    grep与正则表达式 一.grep grep文本过滤工具 作用:文本搜索工具,可以指定内容对指定文本进行匹配搜索:打印匹配的行 由正则表达式字符及文本字符编写的过滤条件,来进行逐行匹配 -- colo ...

  3. grep及正则表达式

    grep可以说是Linux系统当中的一个文本检索工具.在Linux系统当中,其中有两个核心的理念:一切皆文件.配置文件保存为纯文本的格式.既然是纯文本的格式,可以想象,有一个好的文本检索工具是多么必要 ...

  4. Linux     grep命令,正则表达式

    grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression ...

  5. shell编程三剑客之grep与正则表达式

    shell编程三剑客之grep与正则表达式 一 grep工具 1.1 常用选项 1.2 选项解释 二 正则表达式 2.1 正则表达式的含义 2.2 正则表达式的应用场景 2.3 正则表达式名词解释 2 ...

  6. linux grep 正则匹配字符串,Linux grep与正则表达式详解

    grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,本文主要给大家分享Linux grep与正则表达式的相关知识,感兴趣的朋友一起看看吧,希望能帮助到大家. grep ...

  7. Linux grep之正则表达式

    文章目录 6.grep之正则表达式 1.自学书上的 2.课件上的 3.总结 6.grep之正则表达式 1.自学书上的 在正则表达式中,空格和其他字符没有什么区别. 正则表达式识别的字符包括:*[]^$ ...

  8. 正则表达式匹配linux时间,linux grep与正则表达式使用介绍

    grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹 ...

  9. Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...

    本章Blog相关Linux知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户 ...

  10. linux grep 基本正则表达式与扩展正则表达式使用解析

    成功的秘诀很简单=开始+坚持 接下来介绍grep和基本的正则表达式: 当大家需要从某个文本中,或者信息中检索数据时就要用上grep了 先介绍下grep的基本语法 grep [options] 'pat ...

最新文章

  1. Web前端工程师的一些常见误区
  2. 使用libre office writer 为文档添加可跳转目录
  3. php验证安全码,PHP 高自定义性安全验证码的简单示例
  4. 计算机删除等级列在哪里,插入与删除Excel表格的单元格、行和列
  5. 全国计算机等级考试题库二级C操作题100套(第28套)
  6. u2020 华为_华为MateBook X Pro 2020款评测:全面屏商务旗舰再升级
  7. 树状数组相关应用之区间包含问题
  8. 高质量C /C编程指南---序言
  9. Node.js CVE-2017-14849复现(详细步骤)
  10. 【LOJ】#2062. 「HAOI2016」地图
  11. java总结体会_Java课程总结心得体会
  12. flash动画转html5 效果,一键把SWF转HTML5 canvas动画的工具-Fanvas
  13. 【CASS精品教程】CASS9.1查询功能大全(坐标、长度、面积、方位角)
  14. CF1467C Three Bags(思维)
  15. c++ primer plus6.11第三题 编写一个菜单驱动程序雏形。
  16. matlab 去高光,Specular-Highlight-Mitigation-Removal-master
  17. 京东云linux查看挂载磁盘,使用S3fs在Linux实例上挂载Bucket
  18. 商用三维虚拟数字人如何制作
  19. python snmp
  20. GR技术介绍-ielab

热门文章

  1. 介绍4个大神常用而你不常用的python函数--assert,map,filter,reduce
  2. 【干货】神经网络SRU
  3. 深度学习TF—6.神经网络过拟合及reduce overfitted
  4. PyTorch学习笔记——词向量简介
  5. jquery扩展与插件
  6. 试读《JavaScript语言精粹(修订版)》
  7. IT项目管理之系统验收
  8. 二分法05:搜索旋转排序数组
  9. 37线性映射04——像与核、核与像的计算、线性映射的维数公式
  10. 手把手教你申请Coursera的课程助学金