Linux基础知识:正则表达式
什么是正则表达式?
我理解的正则表达式就是用来匹配字符串的一种方法。通过一种规则去帮助用户更快捷的达到查找的目的。
对于系统管理员来说,正则表达式是非常重要的。因为在系统每天都会产生相当多的信息,比如系统的日志文件中记录了很多系统产生的相关信息,如果去查看那么多的信息是相关费时的,而正则表达式则可以用来查询我们需要的信息,过滤掉那些不需要的信息,从而方便我们处理。
正则表达式分为几种,常用的是:
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基础知识:正则表达式相关推荐
- LINUX基础知识笔记全
LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...
- linux基础知识-链接列表
linux基础知识-链接列表 1. 安装centos 7 1.1 Linux的初识 1.2 centOS 7安装教程 1.3 centOS 7配置ip和网络问题排查 1.4 PuTTY和Xshell远 ...
- linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp
linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...
- Linux基础知识题解答(一)
题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 计 ...
- linux基础知识复习
@(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作 创建文件和目录 拷贝文件和目录 剪切文件和目录 删 ...
- linux 文件夹隐藏属性,Linux基础知识之文件隐藏属性
这几天温习下Linux基础知识,基础里面较为薄弱的知识点我会在这里记录一下,以便回头查看 Linux下的文件除了权限属性,还有一些隐藏属性,必须使用lsattr来显示,如下所示: [[email pr ...
- linux 基础知识及命令总结
1.mkdir 创建目录 -p 创建多级目录 mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...
- Linux基础知识--2.Linux的文件系统和bash的基础特性(1)
Linux基础知识--linux的文件系统和bash的基础特性 一.Linux文件系统: Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux ...
- Linux基础知识整理
Linux从字面上讲就感觉不是很简单,下面我就来告诉你们linux的一些入门及基础知识 linux的特点 - 免费的/开源 - 支持多线程/多用户 - 安全性好 - 对内存和文件管理优越 关机命令 s ...
- linux基础知识个人总结
linux基础知识个人总结 第一章: 1. Linux发展史略,有代表性的Linux发行版:Suse.slackware.ubuntu.RedHat.CentOS 2. GNU是Richard Sta ...
最新文章
- Spark应用程序第三方jar文件依赖解决方案
- BloomFilter——大规模数据处理利器
- 微信小程序——添加按钮格式
- Ascamp;Chr Converter v1.0.vbs
- webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名
- LinuxMySQL主从配置
- pandas将字符串转换成时间_pandas入门: 时间字符串转换为年月日
- Dreamweaver里文档工具栏位置
- 深入浅出数据分析 Head First Data Analysis Code 一书中的文档下载
- 深入学习理解UNIX网络编程
- XTU-oj 字符矩阵
- 推荐一款可以在浏览器中运行的人脸识别库
- linux系统无法复制文件夹,linux 电脑之间复制文件、文件夹命令
- 云计算机教室 国家标准,计算机云网络教室建设方案
- 走马观花-浪里跳-学习英文
- 技术手段VBA之爬虫
- vivado17.4支持w25q128的方法
- 无聊领养一个QQ宠物
- 从回合霸王到网游巨头 网易游戏十年史
- SARScape中用sentinel-1数据做SBAS-InSAR完整流程(2/2)