正则表达式

REGular EXPression   的简写
元字符

匹配次数

位置锚定

分组

--------------------------------------
元字符
. 匹配任意单个字符

[] 匹配指定范围内任意单个字符

[^] 匹配指定范围外的
[:space:] 空白字符
[:punct:] 标点字符
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 大小写字母
[:digit:] 数字
[:alnum:] 数字和大小写字母

匹配次数(贪婪模式)

* 匹配其前面的字符任意次
a*b b前面a出现任意次数
a.*b a开头b结束
.* 任意长度任意字符

\? 匹配其前面的字符1次或0次 意思是这个字符可有可无
a?b
\{m,n\} 匹配其前面的字符至少m次 至多n次
\{1,\} 至少一次
\{,3\} 至多3次
a.\{1,3\}b a和b之间至少有一个最多有三个字符

位置锚定:

^ 锚定行首 此字符后面的任意内容必须出现在行首

$ 锚定行尾 此字符前面的任意内容必须出现在行尾
grep 'b..h$' /etc/passwd
^$ 空白行
\< 其后面的任意字符必须作为单词首部出现
\> 其前面的任意字符必须作为单词尾部出现 \b这个符号的另一种写法

分组
\(\)
\(ab\)* ab 可以出现任意次
\1 第一个左括号以及与之对应的组内容

grep '\(l..e\).*\1' test3.txt

练习: 分析/etc/inittab 文件中如下文本中前两行的特征(每一行中出现在数字必须相同)请写出可以精确找到类似两行的模式
11:1:wait:/etc/rc.d/rc 1

13:1:wait:/etc/rc.d/rc 3

grep '^1\([0-9]\):\1.*\1$' /etc/inittab

grep 使用基本正则表达式定义的模式来过滤文本的命令

----------------------------------------------------
扩展正则表达式

字符匹配
. [] [^]

次数匹配
*
? 无需反斜杠了
+ 匹配其前面的字符至少一次 \{1,\}
{m,n} 不需要反斜线

位置锚定
^
$
\<
\>

分组
() 不用反斜杠
\1,\2

或者
a|b or的意思
C|cat 整个左边和右边
Cat或者cat 错
C或者cat 对

grep -E 'C|cat' text.txx

{3}重复三次

fgrep 不支持正则表达式 特别快

Linux环境下常用regexp的使用的更多相关文章

  1. 第十八篇 Linux环境下常用软件安装和使用指南

          提醒:如果之后要安装virtualenvwrapper的话,可以直接跳到安装virtualenvwrapper的方法,而不需要先安装好virtualenv   安装virtualenv和生 ...

  2. Linux环境下常用软件(个人笔记编辑更改中)

    近期使用CentOS,就在这里记录一下.首先,个人版本是CentOS6.5,属于centos系列,Fedora系列的理论上也可以用. 工欲善其事,必先利其器,这里介绍我的软件包配置: 1.vim(增强 ...

  3. Linux环境下常用的SSH命令

    目录操作: rm -rf mydir /*删除mydir目录*/ mkdir dirname /*创建名为dirname的目录*/ cd mydir /*进入mydir目录*/ cd – /*回上一级 ...

  4. Linux环境下实现对文件读写操作

    ---- 今天分享一下在linux系统在实现对文件读写一些基本的操作,在这之前我们要掌握一些基本的技能在Linux环境下.比如查看命令和一个函数的具体用法,就是相当于查手册,在Linux下有一个man ...

  5. Linux 环境下一些常用命令(四)

    转自 http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users 31. 命令: rm 'rm ...

  6. linux 环境下运行STS时 出现must be available in order to run STS

    linux 环境下运行ECLIPSE时 出现 “ A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avai ...

  7. Linux环境下使用JFS文件系统

    Linux环境下使用JFS文件系统 JFS是IBM公司为linux系统开发的一个日志文件系统.从IBM的实力及它对Linux的态度来看,JFS应该是未来日志文件系统中最具实力的一个文件系统. JFS提 ...

  8. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  9. 嵌入式LINUX环境下视频采集知识

    V4L2是Linux环境下开发视频采集设备驱动程序的一套规范(API),它为驱动程序的编写提供统一的接口,并将所有的视频采集设备的驱动程序都纳入其的管理之中.V4L2不仅给驱动程序编写者带来极大的方便 ...

随机推荐

  1. sqlserver 批量删除存储过程和批量修改存储过程的语句

    sqlserver 批量删除存储过程和批量修改存储过程的语句- sqlserver 批量删除存储过程和批量修改存储过程的语句,需要的朋友可以参考下. - 修改: 复制代码 代码如下: declare ...

  2. Android API 中文 ListView

    正文 一.结构 public class RatingBar extends AbsSeekBar java.lang.Object android.view.View android.view.Vi ...

  3. jmeter随笔(7)--查看请求响应,为空

    问题:查看请求响应,为空 解决办法: 1.在jmeter3.0版本上找到请求,在[Advanced]下勾选"从HTML文件获取所有内含的资源" 2.运行查看,结果如下

  4. python核心编程 第二天

    1.标准输入输出: import sys saveout=sys.stdout#保存当前输出状态 logfile=open('E://log.txt','r')# 打开文件 sys.stdout=lo ...

  5. 慕课网-安卓工程师初养成-2-7 Java中变量的使用规则

    来源:http://www.imooc.com/code/1242 不得不接受的变量小脾气: 1.Java 中的变量需要先声明后使用 2.变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值 ...

  6. 自定义模板语言之simple_tag和自定义过滤器

    扩展你的模板系统 一般是扩展模板的tag和filter两个功能.可以用来创建你自己的tag和filter功能库. 创建模板库 分为两步: 1. 首先决定由模板库在哪一个注册的app下放置,你可以放在一 ...

  7. 查看linux占用内存/CPU最多的进程

    可以使用一下命令查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 可以使用一下命令查使用CPU最多的10个进程 ps -aux | sort -k3nr ...

  8. 使用JAR命令打EAR包

    恩,我又得了一个发布应用的活,常常使用JAR命令来打EAR包,所以下面记录一下,以免忘记! 前提条件如下: 1)我的WEB服务器是WebLogic Server (版本是: 10.3.6.0) 2)假 ...

  9. USACO Section 2.3 奶牛家谱 Cow Pedigrees

    OJ:http://www.luogu.org/problem/show?pid=1472 #include<iostream> using namespace std; const in ...

  10. USACO Section 2.2 循环数 Runaround Numbers

    OJ:http://www.luogu.org/problem/show?pid=1467 #include<iostream> #include<vector> #inclu ...