文本查找的需要
grep,egrep,fgrep

grep:Global Research。根据模式,去搜索文本,并将符合模式的文本行显示出来
Pattern:文本字符和正则表达式的元字符组合而成匹配条件

grep:
  grep [options] PATTERN [FILE...]
  [root@localhost ~]# grep 'root' /etc/passwd
  root:x:0:0:root:/root:/bin/bash
  operator:x:11:0:operator:/root:/sbin/nologin
  [root@localhost ~]#
  -i:不考虑大小写
  --color:颜色高亮
  -v:反向查找,显示没有被模式匹配的行
  -o:只显示被模式匹配的字符串

正则表达式:REGular EXPression,简写为REGEXP
元字符:
.:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符

字符个数:
*:匹配其前面的字符任意次
  a*b:的意思就是a可以出现任意次(包括0次),随后跟了个b。比如 b、ab、aab、
  a.*b:这才表示任意长度的任意字符
.*:任意长度的任意字符
默认情况下,正则表达式工作在贪婪模式下。就是能匹配到哪就匹配到哪,尽可能长的去匹配。比如上面的a.*b:amnb是可以的,amnbmnbmnb也是可以匹配到的
\?:匹配其前面的字符一次或0次
\{m,n\}:匹配前面的字符至少m次,至多n次

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

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

分组:
\(\):分组
  后向引用
  \1:引用第一个左括号以及与之对应的右括号所包括的所有内容
  \2:
  \3:
  ...

grep:使用基本正则表达式定义的模式来过滤文本的命令
  -i
  -v
  -o
  --color
  -E:使用扩展正则表达式
  -A #:其后(#是数字,数字几就是其几行)
  -B #:其前
  -C #:其前后

扩展正则表达式:

字符匹配:
.
[]
[^]

次数匹配:
*:
?:
+:匹配其前面的字符至少一次,
{m,n}:扩展正则表达式的花括号不需要使用反斜线

位置锚定:
^
$
\<
\>

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

或者
|:or的意思,a|b是a或者b

C|cat:C或cat。或者是整个两边都或
(C|c):利用分组匹配小c或大C

grep -E = egrep

fgrep:fast,不支持正则表达式

9_grep及正则表达式的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  3. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  4. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  7. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  8. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

随机推荐

  1. [Unity][安卓]Unity和Android Studio 3.0 交互通讯(1)Android Studio 3.0 设置

    [安卓]Android Studio 3.0 JDK安卓环境配置(2017.10) http://blog.csdn.net/bulademian/article/details/78387052 [ ...

  2. #20175201 实验一 Java开发环境的熟悉(Linux + Eclipse)

    一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. (一)命令行下Java程序开发 1.过程 2.结果 调试代码遇到的问题: 解决 ...

  3. 【长文】Google面试官分步解析自己泄漏前的面试题,超多干货和建议

    本文翻译自Google工程师/面试官Alex Golec的文章:Google Interview Questions Deconstructed: The Knight's Dialer:翻译:实验楼 ...

  4. python 计算器

    import redef main(): #""代表的是空,split()方法已空格或者\t,\n进行切割,join方法是列表,元组,字典变为字符串 a = "" ...

  5. appium 3 跑起来

    1. 代码如下: from appium import webdriver capabilitise = { "platformName": "Android" ...

  6. CDI services--Scope(生命周期)&&EL.(Sp El)

    一.EL/SpEL 1.EL语言(CDI与表达式语言(EL)集成,允许在JavaServer Faces页面或JavaServer Pages页面中直接使用任何组件) 1)概述:EL是JSP内置的表达 ...

  7. UGUI动态更换精灵图片

    //动态更换精灵图片 m_headimage.overrideSprite = Resources.Load("texture/"+info.HeadPortrait,typeof ...

  8. vector创建二位数组

    默认初始化vector vector<vevtor<int> > arr(row, vector<int>(col, 0)); //指定行大小为row,列为col, ...

  9. 【Qt官方MQTT库的使用,附一个MqttClient例子】

    Qt官方MQTT库的使用,附一个MqttClient例子 开发环境:win7 64 + Qt5.9 记录时间:2018年3月11日 00:48:42 联系邮箱: yexiaopeng1992@126. ...

  10. pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0

    原因: 使用了多线程,多线程共享了同一个数据库连接,但每个execute前没有加上互斥锁 方法: 方法一:每个execute前加上互斥锁 lock.acquire()         cursor.e ...