egrep及扩展正则表达式与正则表达式不同处

正则表达式有两类,分为基本正则表达式和扩展正则表达式,是使用命令egrep来使用扩展正则表达式,它与grep很多功能相同,仅在元字符上实现了些扩展扩展,在元字符的表示上与基本正则表达式略不同。

1.命令格式:

egrep [option] pattern file

2.命令功能:

用于过滤/搜索的特定字符。可使用扩展正则表达式能多种命令配合使用,使用上十分灵活。

3.命令参数:

 egrep等同于grep -E选项

扩展正则表达式的元字符:

字符匹配:

字符匹配:

.    #匹配单个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。

[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

次数匹配:

*    #匹配零个或多个先前字符。如:'*grep'匹配所有一个或多个空格后紧跟grep的行。

?  #匹配其前面出现的字符0次或1次。如:'x\?y'匹配x出现一次或者不出现的行。

+     #匹配其前面的字符出现至少一次。如:'x\+y'匹配x出现最少一次的行。

{m}  #匹配其前面的字符至少m次;如:'0\{5\}'匹配包含5个o的行。

{m,}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。

{m,n}:匹配其前面的字符至少m次,至多n次;o\{5,10\}'匹配至少有5-10个o的行。

.* :匹配任意长度的任意字符

位置锚定:

$    #行尾锚定 如:'grep$'匹配所有以grep结尾的行。

^    #行首锚定 如:'^grep'匹配所有以grep开头的行。

^$   #空白行:行首与到行尾   特殊环境能用到

\<   #单词词首锚定,也可以用\b。如: '\<grep''\bgrep'只匹配grep单词开头的行。

\>   #词尾锚定,也可以用\b。如:'grep/>''grep/b'只匹配grep单词结尾的行。

/<pattern/>  #单词锚定,只匹配出现pattern单词的行和'/bpattern/b'是一样的效果。

\b   #单词锁定符,如: '\bgrep\b'只匹配grep。 同/<pattern/>

分组

()  #将关键字和元字符在里面分组,也支持后向引用。

后向引用:模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果括号中的模式匹配到了某内容,次内容     后面的模式中可以被引用;\1,\2,\3   第一个括号,第二个括号,第三个括号模式自左而右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容。

4.不同处:

紧紧在元字符表示上略有不同:

在次数匹配的:?,+,{m},{m,}{m,n},分组()等等元字符表示上略有不同,使用方法都是一样的,大家可以参考另一篇博文《grep命令及基本正则表达式》

egrep及扩展正则表达式 与正则表达式不同处的更多相关文章

  1. 09.正则表达式re-1.正则表达式

    1.正则表达式概述 正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计算机科学的一个概念. 正则表达式使用单个字符串来描述.匹配一系列匹配某 ...

  2. egrep 及扩展正则表达式

    grep -E 表示支持扩展的正则表达式 grep -E = egrep 一.字符匹配: 扩展模式下的字符匹配与基本正则表达式的字符匹配相同,如: . 表示任意单个字符 [] 表示范围内人任意单个字符 ...

  3. 正则表达式--C#正则表达式的符号及例子

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. C#中经常会遇到要查找某一个字 ...

  4. 学习php中的正则表达式,PHP正则表达式基础

    语法格式:位于定界符"/"之间. 较为常用的元字符包括: “+”, “*”,以及 “?”. 其中, “+”元字符规定其前导字符必须在目标对象中连续出现一次或多次, “*”元字符规定 ...

  5. python正则表达式--编译正则表达式re.compile

    编译正则表达式-- re.compile 使用re的一般步骤是先将正则表达式的字符串形 式编译为pattern实例,然后使用pattern实例处理文本并获取匹配结果(一个Match实例(值为True) ...

  6. 廖雪峰Java9正则表达式-2正则表达式进阶-3分组匹配

    1.使用括号可以提取字符串 不加括号匹配电话号码 匹配成功后,如何提取想要的字符串? 使用(...)可以分组:"^(\d{3,4})\-(\d{6,8})$" 2.String.m ...

  7. 廖雪峰Java9正则表达式-1正则表达式入门-2正则表达式匹配规则

    正则表达式的匹配规则: 从左到右按规则匹配 匹配规则及示例 可以匹配 不能匹配 "abc" "abc" 不能匹配:"ab", "A ...

  8. 廖雪峰Java9正则表达式-1正则表达式入门-1正则表达式简介

    1.使用代码来判断字符串 场景: 判断字符串是否是有效的电话号码:"010-12345678", "123ABC456" 判断字符串是否是有效的电子邮箱地址:& ...

  9. egrep及扩展正则

    模式:pattern 正则: grep:基本正则,查找速度慢 Extended grep:扩展正则 fgrep:fast grep,不支持正则,直接查找字符串,执行速度快 基本正则: . :任意单个字 ...

随机推荐

  1. Java设计模式之单例模式详解

    在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过.我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以 ...

  2. Java中的比较总结

    Java中的比较问题是一个很基础又很容易混淆的问题.今天就几个容易出错的点作一个比较详细的归纳与整理,希望对大家的学习与面试有帮助. 一.==与equals()的区别 首先,我们需要知道==与equa ...

  3. 泛泰A870(高通APQ8064t 600 cpu) Mokee4.4.2(Android4.4) 图赏

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lob3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  4. chrome调试,打完断点后关于JS的几个控制介绍

    打完断点之后,关于JS的几个控制介绍. 快捷键:F8 "逐过程执行",继续执行代码,直到遇到下一个断点. 详细解释: 暂停和开始.当设置了断点之后,js的执行就暂停了,如果我们想要 ...

  5. sql语句百万数据量优化方案

    一:理解sql执行顺序 在sql中,第一个被执行的是from语句,每一个步骤都会产生一个虚拟表,该表供下一个步骤查询时调用,比如语句:select top 10 column1,colum2,max( ...

  6. 救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系

    前天聚餐的时候一航和启飞学长讲到RUCTF中更改root密码要进入单用户模式,我插了一句"有的系统显示的是救援模式",说完后心里一直很虚...(技术上的事还是想好再说)今天查了一下 ...

  7. 如何在MAC上安装SSHFS

    找了半天,试了各种方法,最后一种可行的方法. macOS 版本 10.12.6 具体看下面的说明: 安装Fuse 下载 osxfuse-3.6.3.dmg 并且安装. 链接 安装sshfs 下载ssh ...

  8. jupyter 安装、配置及使用笔记

    jupyter 安装.配置及使用笔记 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-2-22 絮絮叨叨篇的前言 早在大 ...

  9. 多线程day01

    多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程 ...

  10. Targets选项下Other linker flags的设置

    -ObjC:加了这个参数后,链接器就会把静态库中所有的Objective-C类和分类都加载到最后的可执行文件中 -all_load:会让链接器把所有找到的目标文件都加载到可执行文件中,但是千万不要随便 ...