4.4学习笔记-REGEXP1(正则表达式)

文本查找的需要:

grep egrep fgrep

grep: 根据模式,搜索文本,并将符合模式的文本行显示出来

Pattern(模式):文本字符和正则表达式的元字符组合而成的匹配条件

grep [option] PATTERN [FILE...]

grep ‘root‘ /etc/passwd

-i 忽略字符大小写

--color 加颜色

-v 反向查找(显示没有被模式匹配的行)

-o 只显示被模式匹配到的字符串

* 任意长度的任意字符

? 任意单个字符

[]:指定范围内

[^]:指定范围外

正则表达式:Regular EXPression,REGEXP

元字符:

. 匹配任意单个字符

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

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

[:digit:] [:lower:]

[:punct:]标点符号  ---字符集合

[:upper:] [:space:] [:alpha:] [:alnum:]

字符次数(贪婪模式):

* :匹配其前面的字符任意次数

a b  ab aab acb adb amnb

a*b a出现任意次跟一个b

a.*b ab中间任意字符

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

grep ‘a\?b‘ test.txt

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

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

\{1,\}

\{0,3\}

grep ‘a.\{1,3\}‘ test.txt

位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首

$:锚定行尾,此字符后面的任意内容必须出现在行尾

grep ‘^r..t‘  test.txt

^$:空白行

grep ‘[[:digit:]]$‘ /etc/inittab

\<或者\b:其后面的任意字符必须作为单词首部出现 锚定词首

\>或者\b:其前面的任意字符必须作为单词的尾部出现 锚定词尾

\<root\>

grep ‘root\>‘ test.txt  以root作为词尾

grep ‘\<root‘ test.txt  以root作为词首

分组:

\(\)

\(ab\)*  *修饰的一个ab一个整体

后向引用

\1:第一个左括号以及与之对应的右括号所包括的所有内容

\2:

\3:

He love his lover

she like her liker.

he like his lover

grep ‘\(l..e\).*\1‘ test3.txt

grep ‘\([0-9]\).*\1$‘ /etc/inittab

时间: 2024-12-18 09:49:29

4.4学习笔记-REGEXP1(正则表达式)的相关文章

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

python学习笔记八——正则表达式

1.元字符 []-常用来指定一个字符集:[abc];[a-z] -元字符在字符集中不起作用:[akm$] -补集匹配不在区间范围内的字符:[^5] ^-匹配行首 $-匹配行尾 \-后可加不同字符以表示不同意义,也可用于取消所有元字符 \d 匹配任何十进制数,相当于[0-9] \D 匹配任何非数字字符,相当于[^0-9] \s 匹配任何空白字符,相当于[\t\n\r\f\v] \S 匹配任何非空白字符 \w 匹配任何字母数字字符 \W 匹配任何非字母数字字符 *-匹配前一个字符零次或多次 +-至少

正则表达式学习笔记---揭开正则表达式的神秘面纱

正则表达式学习笔记 如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式:如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式.那么正则表达式到底是什么?如何才能真正的掌握正则表达式并正确的加以灵活运用?本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益. 入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到

Linux学习笔记之正则表达式

不积跬步无以至千里,不积小流无以成江海    --荀子<劝学篇>   不管是看Linux书籍还是视频教程都有说正则表达式相当重要,正确运用正则表达式能够帮助管理系统是减少很多的工作量.实际上,正则表达式是一种处理字符串的方法,通过一些特殊符号的辅助,让用户轻易达到查找.删除.替换特定字符串.可以说,它是Linux基础当中的基础,学完之后一定会大有增益. 一.通配符和正则表达式的区别: 通配符只是bash接口中的一个功能,而正则表达式则是一种字符串处理的表示方式:学习正则表达式之前一定要将bas

node.js学习笔记之正则表达式

每种编程语言里都有正则表达式,而且内容基本上都是一样的,今天就来说说我对正则表达式的理解. 我觉得正则表达式实际上就是一种规则,一种针对字符串的规则,我们可以通过正则表达式来获取我们想要的同类型字符串或者检验某一字符串是否符合我们的要求. 正则表达式可以参与计算的符号有: (),小括号,或叫圆括号,是一个分组,也是个集合.他的作用是一个匹配一串字符.比如: /(abc)/;   该句的作用是匹配源字符串中是否有"abc"这样的一串字符; [],中括号,或叫方括号,是一个集合,他的作用是

Python学习笔记(4):正则表达式

正则表达式 用法: >>>import re >>>s=r'abc' >>>re.findall(s,'abcabc') 正则语法: 元字符: . ^ $ * + ? {} [] \ | () [] 用于选择匹配 [abc] 匹配 a或者b或者c [^]用于反选,比如[^abc]不含有abc的 ^用于匹配行首 r'^abc' 匹配'abcd'而不是'dabc' $用于匹配行尾 类似^ \ : 用于转义. \d 表示数字 [0-9] \D 表示d的反 [

黑马程序员--Java基础学习笔记【正则表达式、常用API】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式 正则表达式的组成规则 java.util.regex.Pattern 常见组成规则 字符集合 [abc] a.b.c中任意一个字符 [^abc] 除了a.b.c的任意字符 [a-z] a-z中的任意一个字符 [a-zA-Z0-9] a-z.A-Z.0-9中任意一个字符 [a-z&&[^bc]] a-z中除了b和c以外的任意一个字符 预定义字符集 .任意一个字符 \d 任意一个

shell脚本学习笔记之正则表达式

***基本正则表达式(可支持grep,sed,awk等shell工具) * 0个或多个在*字符前面的那个普通字符. 匹配任意字符^ 匹配行首,或后面字符是非$ 匹配行尾 []匹配字符集合\ 转义符,屏蔽一个元字符的特殊意义\<\>  精确匹配符号\{n\} 匹配前面字符出现n次\{n,\} 匹配前面字符至少出现n次\{n,m\} 匹配前面字符出现n~m次 注意:符号*前面必须至少有两个字符(当符号*后面没有字符时)或必须*前面至少有一个字符(当符号*后面至少有一个字符时)才有意义      符

Perl 学习笔记-正则表达式

1.Perl中的正则表达式 在Perl中叫做模式, 是一个匹配(或不匹配)某字符串的模板, 是一种小程序, 对于一个字符串, 要么匹配, 要么不匹配. 使用简易模式: 将模式写在一对正斜线(/)中即可. 2.元字符  .  匹配非换行符 \n 的任何单字符, 需要注意的是转义字符如  \t  算做一个字符. 匹配  .  应该使用  \.  *  匹配前面的内容0次或多次, 使用  .* 表示匹配任意单字符任意次(这种模式也称为捡破烂模式)  +  匹配前面的内容至少1次  ?  匹配前面的内容