【转】Linux正则表达式使用指南
正则表达式是一种符号表示法,用于识别文本模式。Linux处理正则表达式的主要程序是grep。grep搜索与正则表达式匹配的行,并将结果输送至标准输出。
1. grep匹配模式
grep按下述方式接受选项和参数(其中,regex表示正则表达式)
| 1 | grep [options] regex [files] |
其中options主要为下表:
| 选项 | 含义 | 功能描述 |
| -i | ignore case | 忽略大小写 |
| -v | invert match | 不匹配匹配的 |
| -l | file-with-match | 输出匹配的文件名 |
| -L | file-without-match | 输出不匹配的文件名 |
| -c | count | 输出匹配的数目(行数) |
| -n | number | 输出匹配行的同时在前面加上文件名及在文件名中的行数 |
| -h | no-filename | 抑制文件名的输出 |
举例说明
假设有三个文件del1、del2、del3三个文件的内容如下

例子

2. 特殊字符
| 符号 | 含义 | 举例 |
| ^ | 开始标记 | “^abc”满足的例子abc、abcd |
| ^ | 非(在[]内) | “[^abc]“满足的例子:ddd、mpd |
| $ | 结束标记 | ”abc$”满足的例子abc、mmabc |
| . | 任意字符 | “a.c”满足的例子abc、fapcc |
| \< | 匹配单词开始 | “\<abc”满足的例子abc、abcd |
| \> | 匹配单词结束 | “abc\>”满足的例子abc、pmrabc |
| | | 或 | “AAA|BBB”满足的例子AAA、BBBpp |
3. 范围
| 符号 | 含义 | 举例 |
| ? | 匹配前一个字符0或1次 | “abc?”满足的例子ab、mabcd |
| * | 匹配前一个字符≥0次 | “abc*”满足的例子abbb、abcdk |
| + | 匹配前一个字符≥1次 | “abc+”满足的例子abcd、abcccdd |
| {} | {m}、{m,n}、{m,}、{,n}分别为匹配前一个字符m次、m到n次、≥m次、≤n次 | “abc\{3,5\}”满足的例子abcccc、abcccccc |
| [] | []内如果不是范围,选其一;是范围的话,范围内选其一 | “m[abc]p”满足的例子acpd;m[1-9]p满足的例子m8pp |
| () | 将候选的所有元素放在()内,用|隔开 | “a(1|2|3)bc”满足的例子a1bc、mba3bcd |
注意:{}在郑则表达式中需要转移,而{}()不需要。
注意理解{}范围的例子:

4. 标准字符类
| 字符类 | 释义 |
| [:alnum:] | 字母和数字,与[A-Za-z0-9]等价 |
| [:word:] | [:alnum:]加上下划线_ |
| [:alpa:] | 字母,与[A-Za-z]等价 |
| [:digit:] | 数字,与[0-9]等价 |
| [:xdigit:] | 十六进制字符,与[0-9A-Fa-f等价] |
| [:blank:] | 空格和制表符 |
| [:graph:] | 可见字符,靠扩33~126 |
| [:lower:] | 小写字母 |
| [:upper:] | 大写字母 |
| [:print:] | 可打印字符 |
| [:space:] | 空白字符,等价于[\t\r\n\v\f] |
| [:punct:] | 标点符号 |
| [:cntrl:] | ASCII控制码,包括字符0~31以及127 |
例子

原文地址:http://www.codeceo.com/article/linux-reg-usage.html
【转】Linux正则表达式使用指南的更多相关文章
- linux内核调试指南
linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...
- Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux Kernel - Debug Guide (Linux内核调试指南 )
http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级 ...
- 教老婆学Linux运维(二)Linux常用命令指南【上】
目录 教老婆学Linux(二)Linux常用命令指南[上] 一.概述 二.常用命令 教老婆学Linux(二)Linux常用命令指南[上] 作者:姚毛毛的博客 tips:文章太长,分两篇发出,本篇发前三 ...
- 转:C++ Boost/tr1 Regex(正则表达式)快速指南
C++ Boost/tr1 Regex(正则表达式)快速指南 正则表达式自Boost 1.18推出,目前已经成为C++11(tr1)的标准部分. 本文以Boost 1.39正则表达式为基础,应该广泛适 ...
- Linux音频编程指南
Linux音频编程指南 虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序 ...
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- 关于清晰讲解linux正则表达式的博文分享
http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html linux shell 正则表达式(BREs,EREs,PREs)差异比 ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
随机推荐
- 初识Selenium(四)
用Selenium实现页面自动化测试 引言 要不要做页面测试自动化的争议由来已久,不做或少做的主要原因是其成本太高,其中一个成本就是自动化脚本的编写和维护,那么有没有办法降低这种成本呢?童战同学在其博 ...
- robot framework -记录错误
1.注意ie浏览器代理设置,报奇怪的错误 2.注意浏览器的安全设置,保护模式全部不要勾选
- JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能
主要内容: JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十 ...
- 未能读取并闩锁页 (1:xxxxx)(用闩锁类型 SH)
设置数据库为紧急模式 停掉SQL Server服务: 把应用数据库的数据文件XXX_Data.mdf移走: 重新建立一个同名的数据库XXX: 停掉SQL服务: 把原来的数据文件再覆盖回来: 运行以下语 ...
- AJAX开发技术--AJAX简介
Asynchronous JavaScript and XML,异步JavaScript和XML 主要目的用于页面的局部刷新.不用全部刷新,提高性能. 在AJAX中主要是通过XMLHttpReque ...
- JSP文件上传--FileUpload组件
如果使用上传操作,并且没有使用框架之类,最好使用Smartupload,因为FileUpdate太难使用. 下载组件: fileupload包:http://commons.apache.org/pr ...
- svg都快忘了,复习一下
http://www.360doc.com/content/07/0906/21/39836_724430.shtml
- mob分享
QQ分享时候 QQ和QQ控件的appid 是一样的 都是在QQ开发者那里申请 powered by ShareSDK怎么去掉? android:参考sdk说明文档,继承一个AuthorizeAd ...
- PAT (Advanced Level) 1060. Are They Equal (25)
模拟题.坑点较多. #include<iostream> #include<cstring> #include<cmath> #include<algorit ...
- memory runs at single channel问题解决
memory runs at single channel 解决方案:开机后按DEL ,然后进入BIOS 选择第一项,回车! advanced下面的有个momori什么什么的,选择disable. m ...