什么是正则表达式?

我理解的正则表达式就是用来匹配字符串的一种方法。通过一种规则去帮助用户更快捷的达到查找的目的。

对于系统管理员来说,正则表达式是非常重要的。因为在系统每天都会产生相当多的信息,比如系统的日志文件中记录了很多系统产生的相关信息,如果去查看那么多的信息是相关费时的,而正则表达式则可以用来查询我们需要的信息,过滤掉那些不需要的信息,从而方便我们处理。

正则表达式分为几种,常用的是:

Basic REGEXP: 基本正则表达式

Extended REGEXP:扩展正则表达式

字符集合表示方式:

[[:lower:]]

所有的小写字母;

[[:upper:]]

所有的大写字母;

[[:alpha:]]

所有的字母;

[[:digit:]]

所有数字;

[[:alnum:]]

所有的字母和数字;

[[:punct:]]

所有的标点符号;

[[:space:]]

所有的空白字符;

[^[:lower:]]:

除了小写字母

grep:基本正则表达式

使用基本正则表达式定义的模式来过滤文本的命令,贪婪模式(尽可能长的去匹配)

部分匹配,显示整行

-i:忽略大小写

-o : 只显示被匹配的字符串

--color:把匹配到的高亮

可用 alias grep='grep --color' 设置grep别名

-v:显示没有匹配到的行

-n:在显示匹配文本的那一列之前标示出该列的是多少列

-E:使用扩展表达式

字符匹配:

.    :匹配任意单个字符

[]     :   匹配指定单个字符

[^]   :   匹配指定范围外的单个字符

次数匹配:

*     :   匹配其前面的字符任意次,可以0次

\?     :    匹配其前面的字符1次或0次

\{m,n\}:匹配其前面的字符最少m次,最多n次

例如\{2\}匹配其前面的字符最少2次,最多无上限,无上限时n可省略

\{0,2\}匹配其前面的字符最少0次,最多2次,m不可省略

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

锚定:

^:其后面的字符锚定行首

$:其后面的字符锚定行尾

^PATTERN$  用模式匹配整行

例^ab.*c$  以ab开头中间有任意并以c结尾的行

^$        匹配空白行

^[[:space:]]$  Tab键也算space 匹配完全空白行

\<:其后面的字符锚定单词首部        [ \b.*\b ==\<.*>\   但 \> 不等于 \b ]

\>:其后面的字符锚定单词尾部

\(\) : 分组,例\(ab\)  用于反向引用  子表达式   \1,\2,\3….

在子表达式中(a.b).*\1 表示匹配第一个子表达式匹配到的字符

例      amb hello anb 不匹配

amb hello amb 匹配

eqrep:扩展正则表达式

字符匹配:(与grep一致)

.    :匹配任意单个字符

[]     :   匹配指定单个字符

[^]   :   匹配指定范围外的单个字符

次数匹配:

*     :   匹配其前面的字符任意次,可以0次

?       :    匹配其前面的字符1次或0次(相比grep不用加\)

+       :    匹配其前面的字符至少1次(?+     =    grep的*)

{m,n} :匹配其前面的字符最少m次,最多n次(相比grep不用加\)

锚定:

^:其后面的字符锚定行首

$:其后面的字符锚定行尾

\< :其后面的字符锚定单词首部

\> :其前面的字符锚定单词尾部

(): 分组, 用于反向引用  子表达式   \1,\2,\3….

|:或者,例 a|b 表示 a或者b

C|cat  表示 C或者cat

(C|c)at 表示 Cat或者cat

转载于:https://blog.51cto.com/xxlixin1993/1627248

Linux基础知识:正则表达式相关推荐

  1. LINUX基础知识笔记全

    LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...

  2. linux基础知识-链接列表

    linux基础知识-链接列表 1. 安装centos 7 1.1 Linux的初识 1.2 centOS 7安装教程 1.3 centOS 7配置ip和网络问题排查 1.4 PuTTY和Xshell远 ...

  3. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp

    linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...

  4. Linux基础知识题解答(一)

    题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 计 ...

  5. linux基础知识复习

    @(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作 创建文件和目录 拷贝文件和目录 剪切文件和目录 删 ...

  6. linux 文件夹隐藏属性,Linux基础知识之文件隐藏属性

    这几天温习下Linux基础知识,基础里面较为薄弱的知识点我会在这里记录一下,以便回头查看 Linux下的文件除了权限属性,还有一些隐藏属性,必须使用lsattr来显示,如下所示: [[email pr ...

  7. linux 基础知识及命令总结

    1.mkdir   创建目录 -p 创建多级目录  mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...

  8. Linux基础知识--2.Linux的文件系统和bash的基础特性(1)

    Linux基础知识--linux的文件系统和bash的基础特性 一.Linux文件系统: Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux ...

  9. Linux基础知识整理

    Linux从字面上讲就感觉不是很简单,下面我就来告诉你们linux的一些入门及基础知识 linux的特点 - 免费的/开源 - 支持多线程/多用户 - 安全性好 - 对内存和文件管理优越 关机命令 s ...

  10. linux基础知识个人总结

    linux基础知识个人总结 第一章: 1. Linux发展史略,有代表性的Linux发行版:Suse.slackware.ubuntu.RedHat.CentOS 2. GNU是Richard Sta ...

最新文章

  1. Spark应用程序第三方jar文件依赖解决方案
  2. BloomFilter——大规模数据处理利器
  3. 微信小程序——添加按钮格式
  4. Ascamp;Chr Converter v1.0.vbs
  5. webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名
  6. LinuxMySQL主从配置
  7. pandas将字符串转换成时间_pandas入门: 时间字符串转换为年月日
  8. Dreamweaver里文档工具栏位置
  9. 深入浅出数据分析 Head First Data Analysis Code 一书中的文档下载
  10. 深入学习理解UNIX网络编程
  11. XTU-oj 字符矩阵
  12. 推荐一款可以在浏览器中运行的人脸识别库
  13. linux系统无法复制文件夹,linux 电脑之间复制文件、文件夹命令
  14. 云计算机教室 国家标准,计算机云网络教室建设方案
  15. 走马观花-浪里跳-学习英文
  16. 技术手段VBA之爬虫
  17. vivado17.4支持w25q128的方法
  18. 无聊领养一个QQ宠物
  19. 从回合霸王到网游巨头 网易游戏十年史
  20. SARScape中用sentinel-1数据做SBAS-InSAR完整流程(2/2)

热门文章

  1. HTML5的本地存储详解
  2. Django快速分页
  3. SpringCloud(第 029 篇)配置客户端 ConfigClient 接入配置服务端
  4. git提交代码遇到fatal: unable to access
  5. 中国安防视频监控行业发展前景分析
  6. Flash ActionScript (23)三天学透as3.0之第二天
  7. Android Chromium WebView Crash
  8. js进阶 10-8 伪类选择器有哪几类(自己不用,永远不是自己的)
  9. ELK环境搭建及client配置
  10. golang枚举类型 - iota用法拾遗