【转】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 正则表达式:它 ...
随机推荐
- javascript语句语义大全(5)
1. var str = "abcd";alert(str.length);alert(str.charAt(0));//获取下标为0的字符alert(str.charCodeAt ...
- PAT (天梯)L2-004. 这是二叉搜索树吗?
L2-004. 这是二叉搜索树吗? 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一棵二叉搜索树可被递归地定义为具有下列性质的 ...
- UVA - 437 The Tower of Babylon(dp-最长递增子序列)
每一个长方形都有六种放置形态,其实可以是三种,但是判断有点麻烦直接用六种了,然后按照底面积给这些形态排序,排序后就完全变成了LIS的问题.代码如下: #include<iostream> ...
- Java NIO的探究
1.Java NIO与阻塞IO的区别 阻塞IO通信模型(在上一篇<J2SE网络编程之 TCP与UDP>博客中有所介绍) 我们知道阻塞I/O在调用InputStream.read()方法时是 ...
- 43个优秀的Swift开源项目推荐(转载)
["轮子"] 工具类 SwiftyJSON:GitHub 上最为开发者认可的 JSON 解析类 Dollar.swift:Swift 版 Lo-Dash (或 underscore ...
- RedHat Enterprise Linux AS4&5 安装gcc过程
三.Gcc安装方法(redhat 4): 一.安装步骤 1.使用which gcc命令查看gcc是否安装安装 2.如若没有安装则下载如下安装包,所需安装包如下 一共需要拷贝以下五个安装包: binut ...
- ecb, 找不到button
我问了一下,http://stackoverflow.com/questions/17667554/when-configuring-ecb-i-cant-found-button-save-for- ...
- 穿越泥地(mud)
穿越泥地(mud) 题目描述 清早6:00,FJ就离开了他的屋子,开始了他的例行工作:为贝茜挤奶.前一天晚上,整个农场刚经受过一场瓢泼大雨的洗礼,于是不难想象,FJ现在面对的 是一大片泥泞的土地.FJ ...
- linux下sed命令对文件执行文本替换
让我们看一下 sed 最有用的命令之一,替换命令.使用该命令,可以将特定字符串或匹配的规则表达式用另一个字符串替换.下面是该命令最基本用法的示例: $ sed -e ‘s/foo/bar/’ myfi ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees (DP)
C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...