grep与正则表达式详解(更新中...)

grep作用:使用模式匹配指定文件中的文本,是一款很好用的文本搜索和过滤工具

模式:正则表达式字符以及文本字符编写的过滤条件

正则表达式:由一类特殊字符及文本字符所编写的的模式,其中有些字符不表示字面意义,而表示          控制或者通配功能,分为基本正则表达式和扩展正则表达式两类

grep默认使用基本正则表达式,egrep或者grep -E开启扩展正则表达式

--color=auto:为匹配到的字符着色

-v:反选,显示不能被模式匹配到的行

-F:使用fgrep

-P:使用perl语言的正则表达式引擎(功能异常强大)

-o:仅显示匹配到的字符(默认显示整行)

-i:匹配时忽略字符大小写

-q:静默模式,即使匹配到也不输出到屏幕

-A n(n是数字):显示匹配到的行及行后面n行

-B n:显示匹配到的行及行前面n行

-C n:显示匹配到的行及行前后n行

基本正则表达式:

字符匹配

. :表示匹配任意单个字符

[]:匹配指定范围内的任意单个字符

^:匹配范围之外的字符

次数匹配:用在要指定次数的字符后面,用于指定前面的字符出现的次数

*:匹配其前面的字符任意次(0到n次)

\?:匹配其前面的字符0次或1次(前面的\是用来转义的)

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

\+:匹配其前面的字符至少一次

\{m\}:匹配其前面字符精确m次

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

使用范例:新建一个文本文件grep.txt,内容如下:

tip:上例匹配到了‘xyxyxyxy‘,所以默认情况下正则表达式工作在贪婪模式下

位置锚定:

^:锚定行首

$:锚定行尾

^$:锚定空行

^[[:space:]]*$:锚定空白行(包括制表,空格)

单词锚定

\<或\b:词首锚定,应出现于单词模式左侧

\>或\b:词尾锚定,应出现于单词模式右侧

\b<pattern>\b:锚定整个单词

分组:将一个或多个字符捆绑在一起当做一个整体进行处理

\(\)

后向引用:引用前面分组括号中的模式匹配到的字符

\1:匹配从左侧起第一个左括号以及与之匹配的右括号之间的所匹配到的字符

\2:匹配从左侧起第二个左括号以及与之匹配的右括号之间的所匹配到的字符

\n:匹配从左侧起第n个左括号以及与之匹配的右括号之间的所匹配到的字符

时间: 2024-10-11 05:17:05

grep与正则表达式详解(更新中...)的相关文章

grep和正则表达式详解

一.Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具: sed:文本编辑工具: awk:Linux上的实现gawk,文本报告生成器: 二.grep grep:Global search REgular expression and Print out the line,是一款文本过滤(模式:pattern)工具. 作用:文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行: 模式:由正则表达式字符及文本字符所编写的过滤条件. grep

2015年8月27日课程作业(grep,正则表达式详解)

一.作业(练习)内容: 1.总结本此课程中所涉及命令的使用方法及相关示例展示  grep: 文本搜索工具,根据用户指定的文本模式(正则表达元字符及正常字符组成而成)对目标文件进行逐行搜索,显示匹配的行 grep [OPTIONS]... [PATTERN] [FILENAME]... --color=auto    #对匹配到的字符串作高亮显示 -i       #忽略大小写 -v       #仅显示匹配不到行 -O       #仅显示匹配到的字符串 -q       #静默模式 -E  

Linux系统grep及正则表达式详解

1.grep:根据模式搜索文本 并将符合模式的文本行显示出来 文本字符和正则表达式的元字符组合而成匹配条件 grep'root' /etc/passwd搜索/etc/passwd文件中包含有root字符的行显示出来 -i:只显示被模式匹配的行 --color:被模式匹配的行用颜色显示出来 -v:只显示没有被模式匹配的行 -o:只显示被模式匹配到的字符串 2.正则表达式: 元字符: .:表示匹配任意单个字符 grep'r..t' /etc/passwd []:表示匹配指定范围内的任意单个字符 [^

grep及正则表达式详解

grep正则表达式1.grep定义 Globally search a Regular Expression and Print 全局搜索(匹配正则表达式的)并打印 扩展命令:egrep:扩展grep,相当于grep -E 命令,使用扩展正则匹配.fgrep:fast grep,不支持正则匹配的grep,只能匹配字符本来的意义. grep与egrep的区别是egrep支持更多扩展的正则 grep参数(#代表数字)-v:显示不匹配的行-i:忽略字母大小写-o:只打印匹配的字符-E:扩展正则表达式-

grep正则表达式详解及练习

grep正则表达式详解及练习 一.在学习grep正则表达式前,先了解下linux著名的文本处理三剑客: (1)grep.egrep.fgrep 文本搜索工具. (2)sed     文本编辑工具,一种流编辑器,行编辑工具. (3)awk 强大的文本分析工具,文本格式化工具,文本报告生成器. 以上三大命令均支持正则表达式,本文以grep正则表达式为例展开学习. 1.什么是正则表达式? 正则表达式(Regular Expression):由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意

JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 exec方法的返回值 exec方法返回的其实并不是匹配结果字符串,而是一个对象,简单地修改一下execReg函数,来做一个实验就可以印证这一点: function execReg(reg, str) { var result = reg.exec(str); alert(typeof result

Shell编程之---正则表达式详解

正则表达式详解 普通字符:只是字面的意思 元字符:超过字面意思的意义 基本正则表达式元字符及其意义 * #0个或多个在*字符之前的那个普通字符 .               #匹配任意字符 ^         #匹配行首 $         #匹配行尾 $$ #执行上一条命令 !$ #上一条命令的最后一个参数,例如是/etc/passwd,继续对该参数操作,可以为 cat !$ []        #匹配字符集合 \          #转义符 \{n\}      #匹配前面字符出现n次 \

Linux 正则表达式详解

正则表达式(REGULAR):为处理大量的字符串而定义的一套规则和方法,为了处理大量字符串而生 常见命令参数 基础正则表达式 . :有且只有任意一个字符(包括空格) * :重复前面任意0或者多个字符 .*:匹配任意字符==>所有,包括空格 \ :转义字符,让有意义的字符,显示原型 \$ --> $本身 ^ :^d 以d开头的文件 $ :/$ 以/结尾的文体 ^$:表示空行 grep -vn "^$" h.txt -->不显示空行 -n 显示行号 sed -r 's#(

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用