正则表达式是一个工具,可以提高工作效率的工具。无论学习什么东西,都要明白它是用来干什么的,怎么去很好的运用它,这些才是我们应该作为学者首先该考虑的东西。既然是表达式,就是有命令、参数、选项、连接符等组合而成的,它们可以根据我们的需要,组合成有效的形式,进行文本的特定搜索和切割,得到我们想要的结果。说的简单些,正则表达式就是由一大堆的元字符组合起来,过滤文本的,我们把这些元字符组合起来,就是模式。

正则表达式,大家在开发中经常会用到的,现在很多开发语言都有正则表达式的应用,比如javascript java .net php等。我们什么时候用正则表达式呢?不是所有的字符操作都用正则就好了,当我们遇到复杂文本数据的解析时候,用正则是比较好的选择。
优点:正则表达式在处理复杂字符操作的时候,可以提高工作效率,也在一定程度 节省了你的代码量。
缺点:我们再使用正则表达式的时候,复杂的正则表达式会加大代码的复杂度,让人很难理解,所以我们有的时候需要在正则表达式内部添加注释
正则表达式可以分为:
1.基本正则表达式:grep
2.扩展正则表达式:egrep
3.不搜索正则表达式:fgrep
基本正则表达式,在日常学习和工作中用的最多的。
表格1 grep的常用选项
选项
说明
-v
对结果取反
-i
忽略字母大小写
-o
仅显示匹配到的字符串
-E
支持扩展正则表达式
-A n
匹配到的行向后多显示n行
-B n
匹配到的行向上多现实n行
-C n
匹配到的行上下各显n行
表格2 元字符
.
匹配任意单个字符
*
匹配其前面的字符任意次
.*
任意长度的任意字符
[]
指定范围内的任意单个字符
[^]
取反
^
锁定行首
$
锁定行尾
^$
锁定空白行
\<
锚定词首
\>
锚定词尾
\(value\)
分组
\n
引用
表格3 常用通配符
[:digit:]
所有数字
[:lower:]
所有小写字母
[:upper:]
所有大写字母
[:space:]
所有空白字符
[:alpha:]
所有字母
[:punct:]
所有标点符号
表达式就是将以上这些选项用一种合理的方式组合起来。其中会用到我们学过的文本查找命令、文本切割命令、输入输出重定向,还有sed等等命令,只看一个命令它是独立的,零碎的,把它们结合起来就会有强大的功能。因此可以把正则表达式看成是命令的集合。
仅仅是记住这些模式是没用的,要会用才是王道。下面我们来看一些例子:
例1:取出当前系统上以eth开头的网络设备的IP地址

最后一条命令是我们想要的结果。从这个小例子中我们可以看到,正则表达式和shell一样都是命令的堆砌,只要把它们有效的组合起来,就会有意想不到的效果。
例2分析/etc/inittab文件中如下两行的文本特征,请写出可以精确找到类似两行的模式,而且要求每一行中出现在数字必须相同:
l1:1:wait:/etc/rc.d/rc 1
l3:3:wait:/etc/rc.d/rc 3

得到的结果是我们想要的吧。其中[:digit:]可以换成[0-9],这都是没关系的。这条命令中用到的是分组引用
例3显示/proc/meminfo文件中以不区分大小的s开头的行
第一条命令和第二条命令的执行结果是一样的。-i的作用就是忽略字母的大小写。
对于grep的使用就先写到这儿,基本上要用到的模式和选项都在上面的表格中,接下来就是重复再重复的去运用。
有句话不是这样说的么“什么是成功,成功就是简单的事情重复的做“,因此重复的做吧

转载于:https://blog.51cto.com/xinghuiru/902632

简单看正则(grep)相关推荐

  1. php 正则匹配收货地址,PHP简单实现正则匹配省市区的方法

    本文实例讲述了PHP简单实现正则匹配省市区的方法.分享给大家供大家参考,具体如下: 省市区正则匹配 preg_match('/(.*?(省|自治区|北京市|天津市))+(.*?(市|自治州|地区|区划 ...

  2. php省市区地址匹配,PHP简单实现正则匹配省市区的方法讲解

    这篇文章主要介绍了PHP简单实现正则匹配省市区的方法,涉及php正则匹配.判断.运算等相关操作技巧,需要的朋友可以参考下 本文实例讲述了PHP简单实现正则匹配省市区的方法.分享给大家供大家参考,具体如 ...

  3. html5 metro 手机,方块世界:Metro UI简单看

    方块世界:Metro UI简单看 微软的WindowsPhone系统特点你相信大家已经非常的熟悉.Metro UI界面主要特点就是加入了大量的区块,同时整个系统基本都采用单色调的设计.这种设计的最大好 ...

  4. 26期20180703 正则 grep

    7月3日任务 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 扩展 把一个目录下,过滤所有*.php文档中含有eval的行 grep -r --include="*.p ...

  5. 正则,grep命令详解

    正则表达式和grep.vim.awk.sed等的关系: 正则表达式是一种方法,相当于一种工艺,grep等命令相当于是一个具体的加工机器,机器在加工产品的时候,采用这种方法. 命令是怎么执行的: sel ...

  6. 话里话外:简单看流程

    博主推荐 流程经理人联合会文章 流程是什么?怎样理解流程在企业管理中的重要性?流程管理能发挥多大的作用?关于流程的许多问题在众多管理理论研究书籍中,我们常常可以见到,然而理论化的知识往往晦涩难懂,而且 ...

  7. db2中TRANSLATE函数可以实现简单的正则(不属于真正的正则表达式)

    例:translate(string,'','0123456789') db2 "values trim(translate('3433aa33','', '0123456789'))&qu ...

  8. 超简单看懂匈牙利算法

    本篇文章转自: 趣写算法系列之--匈牙利算法 正文: [书本上的算法往往讲得非常复杂,我和我的朋友计划用一些简单通俗的例子来描述算法的流程] 匈牙利算法是由匈牙利数学家Edmonds于1965年提出, ...

  9. POI导出Excel工具类(简单看完就会)

    (一)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NPOI ...

最新文章

  1. Python学习笔记(四)
  2. Dev 控件中的combox禁止输入
  3. python爬虫机器_Python常用的机器学习库|python爬虫|python入门|python教程
  4. Makefile 规则
  5. sql中join与left-join图解区别
  6. Elasticsearch 安装随笔
  7. 深度强化学习- 最全深度强化学习资料
  8. [转载] 七龙珠第一部——第077话 皮拉夫大作战
  9. win10切换桌面_探秘Win10系统中的不可错过的实用功能
  10. 【python小工具】vbb文件提取json
  11. uploadify3.1 php,Jquery上传插件 uploadify v3.1使用说明_jquery
  12. php阿里云短信验证码
  13. 【7】PR音频及结合AU去除噪音【8】PR字幕运用
  14. 电脑ping,电脑ping如何打开 电脑ping打开教程
  15. C++程序练习-1008:Maya Calendar-玛雅日历
  16. 安装ps时无法验证订阅状态_如何解决:Office 无法验证此应用程序的许可证
  17. nmap工具进行端口扫描
  18. [Hack The Box] HTB—Bolt walkthrough
  19. Vue项目-前端实现导出功能
  20. 蓝桥杯国赛10-JavaB-8-大胖子走迷宫

热门文章

  1. 备忘录同步android ios9,IOS备忘录
  2. shell 引号 解析 逗号_关于shell的单引号和双引号转义 以及特殊符号相关
  3. mysql类型_MySQL的数据类型
  4. 选频放大电路对于150kHz导航信号进行放大检波
  5. 调试机械臂一体化控制电路:STM32F103控制器初步调试
  6. 第十五届全国大学生智能汽车竞赛 车模检查手册
  7. 2020年春季学习信号与系统课程作业参考答案-第十一次作业
  8. pgsql数据库默认配置事务类型_PostgreSQL基础教程之:初始化配置
  9. 用c语言实现去bmp图片的背景,菲律宾博牛网-官方网站
  10. vbs字符串正则_VBscript中的正则表达式