基础知识笔记之正则表达式

查找中间是字母的用户

[[email protected] ~]# grep "u[[:alpha:]][[:alpha:]]r" /etc/passwd

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

user1:x:505:505::/home/user1:/bin/bash

user2:x:506:506::/home/user2:/bin/bash

[[email protected] ~]# grep "u[[:alpha:]][[:alpha:]]r" /etc/passwd

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

user1:x:505:505::/home/user1:/bin/bash

user2:x:506:506::/home/user2:/bin/bash

[[email protected] ~]#

基本正则表达式元字符:

字符匹配:

.:匹配任意单个字符

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

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

[:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:punct:]、[:space:]

匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数;默认工作于贪婪模式;

*:匹配其前面的字符任意次;0,1,多次

例如:grep "x*y"

abxy

aby

xxxxxy

yab

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

\?:匹配其前面的字符0次或者1次;即其前面的字符是可有可无的;

\+:匹配其前面的字符1次或者多次;即其前面的字符至少要出现一次;

\{m\}:匹配前面字符m次;

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

\{0,n\}:至多匹配n次

\{m,\}:至少m次

位置锚定:

^:行首锚定;用于模式的最左侧;

$:行尾锚定;用于模式的最右侧;

^word$:用word匹配整行

^$:空白行

^[[:space:]]*$:表示只能出现空白行,space可以出现任意次,不管有没有如果有也只能出现空白;即空白行或者包含空白字符的行

单词:非特殊字符祖册的连续字符(字符串)都称为单词;

\<或者\b:词首锚定,用于单词模式的左侧;

\>或者\b:词尾锚定,用于单词模式的右侧;

\<word\>:精确匹配完整单词

\<word\>:精确锚定单词

\<word左侧锚定单词

word\>右侧锚定单词

分组及引用

\(\):将一个或多个字符捆绑在一起,当做一个整体进行处理;

\(xy\)*ab:将xy当做一个整体来处理

提示:分组括号中的模式匹配到的内容会被正则表达式引擎自动记录与内部的变量中,这些变量为:

\1:模式从左侧其,第一个左括号以及与之匹配的右侧括号之间的模式所匹配的字符;

\2:模式从左侧其,第二个左括号以及与之匹配的右侧括号之间的模式所匹配的字符;

\3:模式从左侧其,第三个左括号以及与之匹配的右侧括号之间的模式所匹配的字符;

行首和行中间都出现r..t的字符窜,即grep的后向引用;引用前面的分组括号中的模式所匹配到的字符

[[email protected] ~]# grep "^\(r..t\).*\1" /etc/passwd

root:x:0:0:root:/root:/bin/bash

[[email protected] ~]#

egrep:

支持扩展的正则表达式实现类似于grep文本过滤功能:grep -E

生成补丁

diff oldfile   newfile >patchfile

-u:使用unfiled机制,即显示要修改文件的上下文,默认为3行

patch:向文件打补丁

path [option] -i patchfile oldfile

或者

patch oldfile < patchfile

时间: 2024-12-28 09:18:57

基础知识笔记之正则表达式的相关文章

原生ajax基础知识笔记

原生ajax基础知识笔记 1.创建 XMLHttpRequest 对象 所有现代浏览器(IE7+.Firefox.Chrome.Safari 以及 Opera)均内建 XMLHttpRequest 对象. 老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveXObject. 代码示例: // Creates a XMLHttpRequest object. var xhr = new XMLHttpRequest(); 兼容浏览器代码示例: var xhr; /

网络连接相关基础知识笔记

一.常说的TCP/IP的含义 TCP/IP协议簇并不仅仅指TCP协议和IP协议,实际它包括了一系列协议组成的集合,如:TCP,IP,UDP,FTP,SMTP,DNS,ARP,PPP等 TCP与UDP协议都属于传输层协议,但有很大不同,TCP是面向连接的协议,提供的是可靠的数据流服务,TCP采用"带重传的肯定确认"机制来实现传输的可靠性,实现了一种"虚电路",因为从物理上来说,并不是真正在两台主机间建立了连接,这种连接只是存在于逻辑上的.最大的开销出现在通信前建立连接

Oracle基础知识笔记(10) 约束

大清早打开vs2008,出现这么诡异的错, 删了一个dll的就好了.如图 Oracle基础知识笔记(10) 约束

Oracle基础知识笔记(11) 建表、更新、查询综合练习

有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓名和所属系别不能为空: 积分要第为空值,要么为6,4

黑马程序员--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 任意一个

unity基础知识笔记一(快捷方式、基础概念)

快捷方式: 飞行模式,可以用alt+wasd ,切换,实现用户以第一视角在场景漫游 alt+鼠标左键:围着关注点旋绕 :切换天空盒.雾效,光晕的显示与隐藏. ctrl+6:可以弹出animation视图 基础概念: Mesh Filter:网格过滤器用于从对象中获取网格信息(Mesh)并将其传递到用于将其渲染至屏幕的网格渲染器当中 Mesh Collider:Mesh碰撞体,为了防止物体被穿透,需要给对象添加碰撞体 Mesh Renderer:网格渲染器从网格过滤器获得几何形状,并且根据Tran

初学MySQL基础知识笔记--第一天

本人初入博客园,第一次写博客,在今后的时间里会一点点的提高自己博客的水平,以及博客的排版等. 在今天,我学习了一下MySQL数据库的基本知识,相信关于MySQL的资料网上会有很多,所以我就不在这里复制粘贴了,在这里留下一些本人在初学MySQL时的一些笔记,以供有需要的同学来参考.以下内容绝无复制,仅仅是博主自己的一些总结. 字段类型 数字:int,decimal(小数) eg:decimal(5,2):一共包含5位数,小数部分有2位 字符:char(存的字符是固定的),varchar(存的字符是

计算机网络基础知识笔记(三)

无分类编址CIDR(Classless Inter-Domain Routing,构造超网) 背景:在1992年因特网仍然面临三个必须尽早解决的问题,这就是:B类地址在1992年已分配了近一半,眼看就要在1994年3月全部分配完毕!因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个). 整个 IPv4 的地址空间最终将全部耗尽. 1987年,RFC1009就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码.使用变长子网掩码VLSM(Variable Length Subnet

存储基础知识笔记

DAS.NAS.SAN是三种存储模式,NAS与SAN都是在DAS的基础上发展起来的,是新型数据存储模式中的两个主要发展方向. DAS是大型服务器采用的主要存储方式,DAS(Direct Attached Storage,直接外挂存储) NAS(Network Attached Storage,网络附加存储) SAN(Storage Area Network,存储域网络) 直接连接存储(Direct Attached Storage,简称DAS),是通常放置在服务器机箱内部的驱动器,通常是SCSI