30分钟入门正则表达式!超详细的学习笔记整理,建议收藏
REGEXP:RegularExpressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能
正则表达式被很多程序和开发语言所广泛支持:vim,less,grep,sed,awk,nginx,mysql等
正则表达式分两类:基本正则表达式:BRE扩展正则表达式:ERE
正则表达式引擎:
采用不同算法,检查处理正则表达式的软件模块,如:PCRE(PerlCompatibleRegularExpressions)
正则表达式的元字符分类:字符匹配、匹配次数、位置锚定、分组
帮助:man7regex基本正则表达式元字符
1、字符匹配。匹配任意单个字符〔〕匹配指定范围内的任意单个字符,示例:〔wang〕〔09〕〔az〕〔azAZ〕〔〕匹配指定范围外的任意单个字符,示例:〔wang〕〔:alnum:〕字母和数字〔:alpha:〕代表任何英文大小写字符,亦即AZ,az〔:lower:〕小写字母,示例:〔〔:lower:〕〕,相当于〔az〕〔:upper:〕大写字母〔:blank:〕空白字符(空格和制表符)〔:space:〕水平和垂直的空白字符(比〔:blank:〕包含的范围广)〔:cntrl:〕不可打印的控制字符(退格、删除、警铃。。。)〔:digit:〕十进制数字〔:xdigit:〕十六进制数字〔:graph:〕可打印的非空白字符〔:print:〕可打印字符〔:punct:〕标点符号
范例:〔rootcentos8〕lsetcgreprc〔。06〕rc0。drc1。drc2。drc3。drc4。drc5。drc6。drc。drc。local〔rootcentos8〕lsetcgreprc〔。06〕。rc0。drc1。drc2。drc3。drc4。drc5。drc6。drc。drc。local〔rootcentos8〕lsetcgreprc〔。06〕。rc0。drc1。drc2。drc3。drc4。drc5。drc6。d
2、匹配次数
用在要指定次数的字符后面,用于指定前面的字符要出现的次数匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配。任意长度的任意字符?匹配其前面的字符0或1次,即:可有可无匹配其前面的字符至少1次,即:肯定有{n}匹配前面的字符n次{m,n}匹配前面的字符至少m次,至多n次{,n}匹配前面的字符至多n次{n,}匹配前面的字符至少n次
范例:〔rootcentos8〕echoetcgrepEetc?etc〔rootcentos8〕echoetcgrepEetc?etc
3、位置锚定行首锚定,用于模式的最左侧行尾锚定,用于模式的最右侧PATTERN用于模式匹配整行空行〔〔:space:〕〕空白行或b词首锚定,用于单词模式的左侧gt;或b词尾锚定,用于单词模式的右侧PATTERNgt;匹配整个单词
4、分组其它
分组:()将一个或多个字符捆绑在一起,当作一个整体处理,如:(root)
分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为:1,2,3,。。。
1表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
示例:(string1(string2))1:string1(string2)2:string2
后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身
或者:
示例:aba或bCcatC或cat(Cc)atCat或cat
正则表达式练习显示procmeminfo文件中以大小s开头的行(要求:使用两种方法)显示etcpasswd文件中不以binbash结尾的行显示用户rpc默认的shell程序找出etcpasswd中的两位或三位数显示CentOS7的etcgrub2。cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行找出netstattan命令结果中以LISTEN后跟任意多个空白字符结尾的行显示CentOS7上所有UID小于1000以内的用户名和UID添加用户bash、testbash、basher、sh、nologin(其shell为sbinnologin),找出etcpasswd用户名和shell同名的行利用df和grep,取出磁盘各分区利用率,并从大到小排序
扩展正则表达式
1、字符匹配元字符。任意单个字符〔wang〕指定范围的字符〔wang〕不在指定范围的字符〔:alnum:〕字母和数字〔:alpha:〕代表任何英文大小写字符,亦即AZ,az〔:lower:〕小写字母,示例:〔〔:lower:〕〕,相当于〔az〕〔:upper:〕大写字母〔:blank:〕空白字符(空格和制表符)〔:space:〕水平和垂直的空白字符(比〔:blank:〕包含的范围广)〔:cntrl:〕不可打印的控制字符(退格、删除、警铃。。。)〔:digit:〕十进制数字〔:xdigit:〕十六进制数字〔:graph:〕可打印的非空白字符〔:print:〕可打印字符〔:punct:〕标点符号
2、次数匹配匹配前面字符任意次?0或1次1次或多次{n}匹配n次{m,n}至少m,至多n次
3、位置锚定行首行尾,b语首gt;,b语尾
4、分组其它()分组后向引用:1,2,。。。或者aba或bCcatC或cat(Cc)atCat或cat
扩展正则表达式练习显示三个用户root、mage、wang的UID和默认shell找出etcrc。dinit。dfunctions文件中行首为某单词(包括下划线)后面跟一个小括号的行使用egrep取出etcrc。dinit。dfunctions中其基名使用egrep取出上面路径的目录名统计last命令中以root登录的每个主机IP地址登录次数利用扩展正则表达式分别表示09、1099、100199、200249、250255显示ifconfig命令结果中所有IPv4地址将此字符串:welcometomagedulinux中的每个字符去重并排序,重复次数多的排到前面
王宝强十部经典电影从淳朴到狠辣角色切换自如且精彩实力派王宝强的作品口碑不会太差,从17岁的时候就荣获金马奖了。近年来,他出演不少精彩的角色,以下是王宝强十部经典电影,甚至有些人从未听过片名。王宝强十部经典电影1、《盲井……
鬼片推荐2019精选10部鬼片恐怖片让你过足瘾鬼片推荐2019:今年(2019)各类恐怖片开始陆续被放出,剩下的一大波也在持续酝酿中。下面精选201910部鬼片恐怖片,让你知道什么才是真正的恐怖王者!1、宠物公墓……
银行家什么时候上映及讲的什么事情传记片《银行家》安排在2021年11月26日到中国上映,并给带来两名黑人企业家在种族歧视盛行的年代,所产生他们雇佣白人替自己出面经商,后期经过磨难,加上逆流改命,才能取得不错的……
黑寡妇新海报曝光身穿紧身衣炫酷无比近日,电影《黑寡妇》的新海报曝光出来,看照片可以看出,黑寡妇身穿紧身衣,神色严肃,炫酷无比。具体海报细节我们一起来看一下。之前《黑寡妇》独立电影的概念图,片场照和片段视频……
华为6G再次抢先一步,专利占比很大众所周知,华为的5G领域已经相当成熟,但却遭至了世界各地企业的相继排挤,不过挫折并不能让华为停下脚步,恰恰相反,在被针对的情况下,华为开始向6G领域进军,并已经取得了阶段性胜利……
美剧必看的10部电视剧美剧tv高分美剧大盘点看每一集都很不舍,因为这次真的是看一集就少一集了。喜欢它的剧迷,我知道你们跟我一样都很不舍吧?没办法,天下无不散之宴席。好不舍hellip;感谢你们陪我一起长大。1美剧必看的1……
最近新出的电影有什么2021年最值得期待的电影大片2021年了,那么最近新出的电影有什么上映的呢?对于影迷来说,好片扎堆的2020过去了,想知道2021年最值得期待的电影大片有哪些,下面整理汇总一起去了解了解。1最近新出……
日剧甜大尺度12部盘点说到日本大尺度电影,不少人都会想到日本的爱情动作片,其实不然,本篇日剧甜大尺度12部,一个比一个没有节操!但剧情看着还是非常不错的,感兴趣的了解下。第1部:《人渣的本源》……
隐秘而伟大结局谁活了剧情剧透解读结局有人牺牲吗最近有不少剧都播到大结局了,像《隐秘而伟大》这部剧的结局谁活了成了大家讨论的问题,那么,隐秘而伟大结局中有人牺牲吗?而《隐秘而伟大》结局谁活了这件事,不少人都不知道,不过根据已……
古天乐宣萱犯罪现场怎么回事电影犯罪现场讲的什么近日,古天乐和宣萱同框现身来宣传自己的新电影《犯罪现场》,电影《犯罪现场》讲述了什么样的故事呢?电影《犯罪现场》什么时候上映呢?具体是什么样的情况,一起来看一下。古天乐宣……
边缘行者上映时间,边缘行者是网络电影吗犯罪影片《边缘行者》选择在2022年4月15日上映,来给观众欣赏有着浓烈港片风格,而时间以香港回归前夕的时间节点做为背景,要在全国进行上映,由此觉得不可能成为网络电影给展现出来……
python字符串操作字符串操作在各个计算机语言中都是比较常见的操作,下面我们对python的字符串操作做下简单介绍。一、索引操作字符串是由一些连续的字符组成,支持索引操作,索引位置从0……