1. 什么是正则表达式
正则表达式(Regluar Expressions)又称规则表达式,这个概念最初是由Unix中的工具软件(如sed 和 grep)普及开的。正则表达式在代码中常简写为REs,regexes或regexp(regex patterns)。它本质上是一个小巧的、高度专用的编程语言。 许多程序设计语言都支持通过正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。

2. 正则表达式能做什么
正则表达式的主要应用对象是文本,使用正则表达式可以指定想要匹配的字符串规则,然后通过这个规则来匹配、查找、替换或切割那些符合指定规则的文本。总体来讲,正则表达式可以对指定的文本实现以下功能:

匹配验证: 判断给定的字符串是否符合正则表达式所指定的过滤规则,从而可以判断某个字符串的内容是否符合特定的规则(如email地址、手机号码等);当正则表达式用于匹配验证时,通常需要在正则表达式字符串的首部和尾部加上^和$,以匹配整个待验证的字符串。

查找与替换: 判断给定字符串中是否包含满足正则表达式所指定的匹配规则的子串,如查找一段文本中的所包含的IP地址。另外,还可以对查找到的子串进行内容替换。

字符串分割与子串截取: 基于子串查找功能还可以以符合正则表达式所指定的匹配规则的字符串作为分隔符对给定的字符串进行分割。

正则中普通常用的元字符

正则中其他常用元字符 

扩展类正则常用元字符 

 基础正则表达式

1.查找特定字符串

grep -n 'the' 文件名

 利用中括号[]来查找集合字符

grep -n 't[ae]st' 文件名

这样就会在文件中寻找包含tast和test关键字的行。

利用集合字符的反向选择[^]排除不想要的关键字前缀:

grep -n '[^g]oo' 文件名

这样就可以选出含oo关键字但oo前又不是g的行。

如果是oo前不想要有小写字母,可以写成:

grep -n '[^a-z]oo' filename或者grep -n '[^[:lower:]]oo' 文件名

如果想要包含数字的行,可以写成:

grep -n '[0-9]' filename或者grep -n '[:digit:]' 文件名

行首与行尾字符^$

查找文件中the开头的行:grep -n '^the' 文件名

查找文件中小写字母开头的行:

grep -n '^[a-z]' 文件名或grep -n '^[[:lower:]]' 文件名

不想要开头是英文字母的行:

grep -n '^[^a-zA-Z]' 文件名或grep -n '^[^[:alpha:]]' 文件名

找出小数点结尾的行:

grep -n '\.$' filename,因为.是特殊字符,所以需要用\进行转义。

找出空白行:grep -n '^$' 文件名

不要空白行,也不要开头是#的行,用来查看配置文件的有效配置很有用:

grep -v '^$' /etc/ssh/ssh_config | grep -v '^#'

任意一个字符.与重复字符*

.(小数点):代表一定有一个任意字符的意思;

*(星号):代表重复前一个0到无穷多次的意思,为组合形态;

需要找出包含g??d的字符串:grep -n 'g..d' 文件名

需要找出两个o以上的字符串:grep -n 'ooo*' 文件名

找出字符串开头与结尾都是g,但是两个g之间仅能存在至少一个o的字符串:

grep -n 'goo*g' 文件名

找出字符串开头与结尾都是g,两个g中间的字符可有可无:

grep -n 'g.*g' 文件名

限定连续RE字符范围{}

因为{与}的符号在shell中是有特殊意义的,因此,必须要使用转义字符\让他们失去特殊意义。

找出包含至少2个o的字符串:grep -n 'o\{2\}' 文件名

找出g后面包含2-5个o再接一个g的字符串:grep -n 'go\{2,5\}g' 文件名

找出g后面包含2个o及以上再接一个g的字符串:grep -n 'go\{2,\}g' 文件名

Linux中常用的正则表达式相关推荐

  1. Linux中常用的命令都是哪些单词的缩写

    作者:蓬岸 Dr.Quest 链接:https://www.zhihu.com/question/49073893/answer/114986798 来源:知乎 著作权归作者所有.商业转载请联系作者获 ...

  2. Linux中常用软件安装

    Linux中常用软件安装 0 软件安装命令 rpm命令 yum命令 1 JDK安装 2 Mysql安装 0 MySQL安装与卸载 (新增于 2021-06-06) 1 卸载 yum方式 rpm方式 2 ...

  3. php正则运用,php中常用的正则表达式的介绍及应用实例代码

    更全面的实例,可以参考 最常用的PHP正则表达式收集整理 //www.jb51.net/article/14049.htm php 正则表达式小结 //www.jb51.net/article/198 ...

  4. LINUX中常用操作命令

    LINUX中常用操作命令 Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 vim使用 用户及用户组管理 文件权限管理 ...

  5. php的正则表达式函数,php中常用的正则表达式函数

    php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...

  6. iOS中常用的正则表达式

    正则表达式是什么鬼呀?(大神请绕路哦) 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码.很 ...

  7. Linux中常用目录作用

    Linux中常用目录作用 1.可以在家目录root或home,以及temp目录下随便放东西. 2.根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的.其中,普 ...

  8. linux中常用的截图录屏软件

    linux中常用的截图录屏软件 1. kazam [推荐] 工具小巧而功能全面,可以选择全屏,窗口或者自定义区域,可以设置帧率,编码方式,时延倒计时,音频来源等; kazam默认视频编码方式是H264 ...

  9. Linux中常用的文件目录,Linux学习笔记2——Linux中常用文件目录操作命令

    ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...

  10. linux中常用的加密总结--base64编码解码与openssl实现

    linux中常用的加密总结–base64编码解码与openssl实现 一.base64 !!!base64是一种数据编码方式,可逆,不是严格意义上的加密算法,不能作为安全加密使用 -d,–decode ...

最新文章

  1. c语言第1章以下说法错误的是,计算机等级考试c语言程序设计习题
  2. 电压控制型开关电源的基本电路
  3. 2019,一线程序员该如何面对中年危机?
  4. 02-maven常用命令,以及使用命令创建目录
  5. python列表常用操作_Python列表(list)常用操作方法小结
  6. OpenGL阴影贴图
  7. Nginx重要结构request_t解析之http请求的获取
  8. python视图函数是什么意思_Flask初学者:视图函数
  9. 死磕java_死磕 java同步系列之AQS起篇
  10. jqueryUI日期控件和时间控件
  11. VMware 和 linux镜像文件
  12. 众为兴SCARA四轴机械臂编程(二)——基于硬接线替代Modbus通讯
  13. Ansys Lumerical | 铌酸锂热调制波导仿真
  14. Matlab roundn()函数使用样例
  15. HUST Trainning 2015-06-14
  16. antd菜单使用动态图标
  17. 通信教程 | 概述并行与串行通信的区别
  18. 极速办公(ppt)文字如何设置斜体
  19. 提高网站转化率——页面停留时间与网站停留时间
  20. fred.V7光线追迹软件

热门文章

  1. 烽火狼烟丨Microsoft多个安全漏洞风险提示
  2. 打开并读取npy文件,查看文件内容
  3. oracle查询创建视图语句
  4. oracle数据库有64位的吗,plsql有64位的吗
  5. Hive之窗口函数(一文搞懂)
  6. 关于在windows上首次编译运行pbrt-3
  7. C#实现Astar 算法以及导航系统
  8. itextpdf 超链接
  9. word——VBA编程
  10. 通过TMS320F28335学习DSP的开发流程——28335的基础知识(1)