It计算机课件 正则表达式_第1页
It计算机课件 正则表达式_第2页
It计算机课件 正则表达式_第3页
It计算机课件 正则表达式_第4页
It计算机课件 正则表达式_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.F

必表达式

正则表达式

•1.正则•达

•2.正则期

•3.正血荒nux中的地位?

•4.延伸的正则限达式,?

什么是正则表达式

符(ren)

ula检

egexpreessSIO串

re:来

^的

^串

•正则表达式是由普通字符(例如字符a至Uz)

以及特殊字符(称为元字符)组成的文字

模式。正则表达式作为一个模板,将某个

字符模式与所搜索的字符串进行匹配。

•1,正则表达式对不统管理员的用途?

可以减轻系统管理员的工作量

•2.正则表达式M具它用途?

很多软件支撑正则表达式,所以我们可以

广泛采用这这种表达式来提高我们的工作

效率,例如:在服务器端剔除垃圾邮件

在linux中的地位

•正则表达式在gux中的作用相当于小学数

学中的乘法口决,是linux基础中的基础。

延伸正则表达式

•按照严谨程度分为:鼻

基础正则表达式;

延伸正则驾*式;

延伸正则表达式;除了简单的一组字符处理

之外,还可以作群组的字符串处理,如找

Ixr或者找linux这个两的庆,可以用延伸正

则表达式。

正则表达式的表示法

语系对正则表汨式的影响:

因为不同的语系其编码顺序是不同的,所以

我们要注意是用前环境是什么语系。

•LANG=C时:01234…ABCD…Zabcd..N

•LANG=zh_TW时:01234…aAbBcCdD…zZ

查看语系的方法:echo$LANG

为了避免这样编码所造成的英文与数字的撷取问题,我们要

一些特殊符号进行了解:

特殊符号代表意义

闾num:]代表英文大小写字符及数字,亦即0-9,A-Z,a-z

[:alpha:]代表任何英文大4写字符,亦即A-Z,a-z

【:blank:]代表空格键与[Tab]按键两者

[:cntrl:]代表键盘上面的控制按键,亦即包括CR,LF,Tab,Del..等等

[:digit]代表数字而已,亦即0-9

[:graph:]除了空格符(空格键与[Tab]按键)外的其他所有按缠

[:lower:]蜴〃写?符,亦即a-z

|print:]代表任何可以被打印出来的字符

[:punct]代表标点符号(punctuationsymbol),亦即:"‘?!;:#$...

Cupper:]代表大写字符,亦即A-Z

匚space:]田可会产生空白的字符,包括空格舞,[Tab],CR等等

[:xdigit:]代表16迸位的数字类型,因此包括:0-9,A-F,a-f的数字与字符

grep的一些进阶选项

•回忆grep用举

下面我们讲grep更多的用法

grep[-A][-B][-colbr=auto]“搜寻字符串”文件

名[-y।二

-A:后面可加数字,为after的意思,除了列出

该行外,后续的n行也列出来

-B:后面可加数字,为before的意思,除了列出

该行外,前面的n行也列出来

--color=auto可将正确的那个撷取数据列出颜色

•grep还可以加上・n显示出行号更容易查看

相关数据。

•一般是查看该行1而且利用一colourauto

还会显示出该曲的颜色,但是如果每句话

都写的话,比较麻烦,如何设置一下就可

以简单实现这一功能?

•用alias命令

•注:在使用正则表达式时要用'';

例1:搜寻特定生符串

•搜索“the”和个字符串

•grep-n'the'regular_express.txt

•如果是选择没看些字符而的呢?即没有the

这个字符串时才显示在屏幕上,那怎么做?

grep-vn'the'reguIar_express.txt

•grep-in'the'regular_express.txt(无论

大小写)一

•例2:利用中括号口来搜寻集合字符

•如果要寻找test或者taste这个两个单词时,

可以发现,耳仰有共通的't?st'存在,那

么我们用正则表达式:

•grep-n't[ae]st'reguIar_express.txt

我们发现无论中括号中有几个字符,都中代

表一个

如果找单词中有“00”时,如何表示?

如果不要单词。。之前有g的话,我们如果作?

•grep-n00'reguIar_express.txt

•如果o。前不要小写字符,很容易的

[tbcd..….z]o。;但是这样还是比较麻烦

我们还记的小玲字母在这里是连续的,我

们可以用[八3可;找数字,我们还可以用

前面提到的[:digit:]

•总结:对口,[”及口和表格中提到的

特殊关键词的了解。

•行首与行尾符:$

•如果想让查找的某个词在句首或句尾如何

实现?’

♦IIel111I

•grep-n'Nhe'reguIar_express.txt

•如果只要行首出现小写字豆该如何实现?

•grep-n'A[a-z]'reguIar_express.txt

•行首不要字母开头?行首未用数字开头?

■注:人在口内和口外的作用有何不同!

•如果要找出行理是小数点.的那一行,该如

何处理N-

弋其Iit<;m

•grep-n'$'regular_express.txt

•注:这里小数去还有其它意义,所以我们

这里用转义字符\。

•注:如果是在windows下的文本,我们可以

用dos2unix命令转化其格式,因为其行尾

的表示方法是不一样的。

•空行如何查找?飞

•如果不要空行和街道用#注释的部分,节约

用纸,我们如何做?

•grep-v'八$,文件名Igrep-v'用’

・任意字符.与重复字符*

•*在做通配符甘卧代表任意多个字符,但是

在正则表达式里并不是通配符,两者之间

是不相同的。

•小数点在正则表达式里代表一个任意字符。

•*代表重复前一个0到无穷多次的意思,为组

合形态。

•我们找g??d这个字符串?

•grep-n'g.dregular_express.txt

亶,3阡尊)114-

•grep-n'g*g'regular_express.txt

•对其结果进行分析一

•grep-n"[0-9][0-9]*'reguIar_express.txt

•例5限定连续字符范围{}

1i!

•grep-n'o\{2\}‘reguIar_express.txt

•grep-n'o\{2,5\}‘reguIar_express.txt

注:“\{2,\}”表示两个以上

延伸正规表示法

­上节课除去空付利行首为#的行列,使用的

是grep-v?$'文件名Igrep-v'A#',

其中用到两次管道命令;如何简化?

•Egr叩—v。$'|"#'文件名

•是分支条件的符号

分支条件

•正则表总式里的分枝条件指的是有几种规

贝I」,如果满足其中任意一种规则都应该当

成匹配,具体方法是用甘巴不同的规则分隔

开。「川!

正则表达式的特性

•正则表达式引擎i正则表达式引擎是一种

可以处理与正则表达式的软件。一般是应

用程序的一部分:一般正则表达式并不互

相兼容。—二

•很多引擎都很类似,但不完全一样,如.net

正则库,JDK正则包。

正则表达式引擎的内部工作机制

种类

两擎:文本导向和与正则导向

。非常有用的特性,如:“惰

I'一/,只能在正则导向的

•正则导向引擎总是返回最左边的匹配。

•如果匹配电话卸码?

表L常用的元字符

代号说明

«匹配除换行符以外的任意字符

\w匹配字母或数字或下划线或汉字

\s匹配任意的空白符

d曲数字

、b匹配单词的开始或结束

A匹配字符串的开始

s匹配字符串的结束

•0\d{2}-\d{8}|0\q{3}-\d{7}这个表达式能匹配

两种以连字号分隔的由A舌号码:一种是三

位区号,8位本地号(,二

种是4位区号,号位本地号。

•\(?0\d{2}\)?[・]?\d{8}|0\d{2}[・]?\d{8}这个表

达式匹配3位区号的电话将码,其中区号可

以用小括号括起聚,也可以不用,区号与

本地号间可以用连字号或空格间隔,也可

以没有间隔。你可以试试用分枝条件把这

个表达式扩展成也支持4位区号的。

•\d{5}・\d{4}|\d{5}这个表达式用于匹配美国的

邮政编码。美国邮编的规则是5位数字,或

者用连字号间隔的9位数字。之所以要给出

这个例子是因为它能说明一个问题:使用

分枝条件时,要注意各个条件的顺序。如

果你把它改成\d{5}|\d{5}-\d{4}的话,那么就

只会匹配5位的邮编(以及9位邮编的前5位)。

原因是匹配分枝条件时,将会从左到右地

测试每个条件,如果满足了某个分枝的话,

就不会去再管其它的条件了

分组

已1

——

?你

奏1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论