1116Xlinux初学习之正则表达式和通配符
一、正则表达式:
元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。
正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。
正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。
基本的正则表达式元字符集合及其意义
| 符号 | 意义 |
| * | 0个或多个在*字符之前的那个普通字符 |
| . | 匹配任意字符 |
| ^ | 匹配行首,或后面字符的非 |
| $ | 匹配行尾 |
| [] | 匹配字符集合 |
| \ | 转义符,屏蔽一个元字符的特殊意义 |
| \<\> | 精确匹配符号 |
| \{n\} | 匹配前面字符出现n次 P.43 |
| \{n,\} | 匹配前面字符至少出现n次 |
| \{n,m\} | 匹配前面字符出现n~m次 |
1.“*”符号
zha*ng :“*”前面的普通字符是a,就表示匹配a字符0次或多次,如:zhng、zhang、zhaaaang
(根据测试可以不包括前面的字符,即匹配0次)
2.匹配空行
匹配行首的^和匹配行尾的$组合起来“^$”可以用来匹配空行,如果需要匹配只包含一个字符的行,可以用“^.$”
3."[]"符号
匹配字符集合,支持穷举方法列出字符集合的所有元素,也支持使用“-”符号表示字符集合范围。
[12345] 等价于 [1-5]
我们知道“^”符号表示匹配行首,但是,“^”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号。
[^b-d] :表示不再b~d范围内的字符
[A-Za-z] [A-Za-z]* :匹配任意英文单词
二、正则表达式的扩展:
扩展的正则表达式元字符及其意义
| 符号 | 意义 |
| ? | 匹配0个或一个在其之前的那个普通字符 |
| + | 匹配一个或多个在其之前的那个普通字符 |
| () | 表示一个字符集合或用在expr中 |
| | | 表示“或”,匹配一组可选的字符 |
1.“?”符号
(根据测试可以不包括前面的字符,即匹配0次)
2."()"符号和“|”符号
"()"符号和“|”符号通常结合使用,表示一组可选字符的集合。
re(a|b|c)d 等价于 re[abc]d
"|"符号也可以表示多个正则表达式的“或”关系。
grep -E “zha?ng|zhi” 文件
三、通配符:
bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。
bash shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能。
通配是把一个包含通配符的非具体文件名扩展存储在计算机,服务器或者网络上的一批具体文件名的过程。(可以看出通配主要应用匹配文件名上,而正则主要应用于字符串上)
最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等。
| 符号 | 意义 |
| * | 任意位的任意字符 |
| ? | 一个任意字符 |
| ^ | 取反 |
1.“{}”符号
表示一组表达式的集合。如:{[a-h]*.awk ,a?.txt}
1116Xlinux初学习之正则表达式和通配符的更多相关文章
- Linux初学学习笔记 -----正则表达式和通配符
简单来说通配符是用来匹配文件名和目录而正则表达式是用来匹配文本内容的 常用的通配符 *:匹配任意多个字符 下面的是以p为开头的目录里面的文件 ?:匹配任意一个字符 [-]:匹配括号内出现的任意一个字符 ...
- Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...
- [Shell]正则表达式与通配符
----------------------------------------------------------------------------------------- 正则表达式与通配符: ...
- Shell学习笔记 - 正则表达式
一.正则表达式是什么? 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. 二.正则表达式与通配符 1. 正则表达式 用来在文件中匹配符合条件的字 ...
- PHP学习之-正则表达式
PHP学习之-正则表达式 1.什么是正则表达式 正则表达式是对字符串处理额一种逻辑公式,就是用特定的字符串组合成一个规则的字符串,称之为正则匹配模式 $p = '/apple/'; $str = '' ...
- clisp, scheme 和 clojure 初学习
clisp, scheme和clojure 初学习 1 clojure "clojure绝对会成为你的编程工具箱里的终极武器" "其他语言可能只是工具,但 Clojure ...
- linux 正则表达式和通配符
linux 正则表达式和通配符 通配符用于查找文件 包含三种: * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...
- js学习之正则表达式
js学习之正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模式 一:语法 ...
- c# window服务-初学习
window服务-初学习 一.工具: VS2015+NET Framework4.5. 二.操作: 1.新建windows服务的项目: 2.修改windows服务相关内容: 3.预览windows服务 ...
随机推荐
- sqlserver 用 RowNumber 分组
SELECT RECORD.[RECORD_ID] ,RECORD.[WORKFLOW_INFO_ID] ,RECORD.[FORM_CODE] ,RECORD.[APPLY_DATE] ,RECOR ...
- JAVA中的单利
单列:单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种.单例模式有一下特点:1.单例类只能有一个实例.2.单例类必须自己自己创建自己的唯一实例.3.单例类必须给所有其他对象提供这一实例. 一.懒 ...
- hibernate save,update,saveorupdate方法有什么区别
save肯定是添加的时候用,update修改时候用,saveorupdate是添加或修改,如果真是这样save和update的存在就没意义了,我们直接saveorupdate就行了. save在添加用 ...
- NOIP模拟赛 行走
题目描述 “我有个愿望,我希望走到你身边.” 这是个奇异的世界,世界上的n-1条路联结起来形成一棵树,每条路有一个对应的权值ci. 现在我会给出q组询问或操作. 每次询问我会从一个x点走到y点,初始在 ...
- Lambda表达式详解(转载)
原文链接:http://www.cnblogs.com/knowledgesea/p/3163725.html lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算 ...
- 个人PHP开发环境的选择与搭建
入职一个多月,重新调整了一下自己电脑的开发环境,现在写出来,算是作为自己的笔记. 如果你是该文章的读者,请忍受文章内的所有小章节都没有具体的步骤. 因为平时还要打游戏(划掉),所以电脑系统一直是Win ...
- 关于iOS9,Xcode7以上的安全性问题
目前伴随着苹果方面对安全性方面的重视,在Xcode开发过程中有时候会出现数据解析在view上不显示的问题 这是在iOS9,Xcode7以后苹果方面为了保护用户安全而采用的用户发送请求机制,那么在开发中 ...
- 043医疗项目-模块四:采购单模块—采购单明细查询(Dao,Service,Action三层)
前一篇文章我们做的是在医院的角度上添加在采购单里面添加药品.这一篇文章是查看我们添加的采购单信息. 我们先看一下要实现的效果:当: 按下确认添加时,会在这里 显示出刚才添加的数据. 好,我们就来做这个 ...
- HTML <map> 设置图热点
需要在一张图片中,设置一个区域为热点就用到了<map> 定义一个客户端图像映射.图像映射(image-map)指带有可点击区域的一幅图像. <img src="planet ...
- codevs http://www.codevs.cn/problem/?problemset_id=1 循环、递归、stl复习题
12.10高一练习题 1.要求: 这周回顾复习的内容是循环.递归.stl. 不要因为题目简单就放弃不做,现在就是练习基础. 2.练习题: (1)循环 题目解析与代码见随笔分类 NOI题库 htt ...