正则表达式教学.ppt
《正则表达式教学.ppt》由会员分享,可在线阅读,更多相关《正则表达式教学.ppt(51页珍藏版)》请在三一办公上搜索。
1、2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,1,第四章 正则表达式,付国宏黑龙江大学计算机科学技术学院,形式语言与自动机理论,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,2,引言,RG擅长语言的产生;FA擅长语言的识别;正则表达式-正则语言的代数表示在对正则语言的表达上具有特殊的优势;简洁、更接近语言的集合表示和语言的计算机表示等;为正则语言的计算机处理提供了方便条件。,2023/8/19,Guohong Fu,School of Computer Sci&Tech,
2、HLJU,3,提要,主要内容RE的非形式化描述和形式定义典型RE的构造与RE等价FA的构造方法与DFA等价的RE的构造重点RE的概念RE与DFA的等价性难点RE与DFA的等价性证明,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,4,RE的非形式化描述,基本思想:用代数的方法表示正规语言语义:作用于语言上的三种代数运算两个语言L1和L2的并,记作L1L2L1L2=wwL1或 wL2设L1=001,10,L2=,001,则L1L2=,001,10两个语言L1和L2的连接,记作L1L2 或L1L2 L1L2=w1w2 w1 L1 且 w2
3、 L2L1L2=001,10,001=001,001001,10,10001语言L的(星或克林)闭包,记作L*L*=L0 L1 L2=i 0 Li,其中,L0=,L1=L,L2=LL,Li=Li-1L,L=0,1,则L*表示所有的0和1的串L=0,11,则L*表示使1成对出现的所有的0和1的串,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,5,RE的形式定义,正则表达式(regular expression,RE)(1)是上的RE,它表示语言;(2)是上的RE,它表示语言;(3)对于a,a是上的RE,它表示语言a;(4)如果r和s分
4、别是上表示语言L(r)和L(s)的RE,则:r与s的“和”(r+s)是上的RE,(r+s)表达的语言为L(r)L(s),即:L(r+s)=L(r)L(s);r与s的“乘积”(rs)是上的RE,(rs)表达的语言为L(r)L(s),即:L(rs)=L(r)L(s);r的克林闭包(r*)是上的RE,(r*)表达的语言为(L(r)*,L(r*)=(L(r)*。(5)只有满足(1)、(2)、(3)、(4)的才是上的RE。,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,6,RE的形式定义(cont.),例 4-1 设=0,1(1)0-表示语言
5、0;(2)1-表示语言1;(3)(0+1)-表示语言0,1;(4)(01)-表示语言01;(5)(0+1)*)-表示语言0,1*;(6)(00)(00)*)-表示语言0000*;(7)(0+1)*)(0+1)(0+1)*)-表示语言0,1+;(8)(0+1)*)000)(0+1)*)-表示0,1上的至少含有3个连续0的串组成的语言;(9)(0+1)*)0)1)-表示所有以01结尾的0、1字符串组成的语言;(10)(1(0+1)*)0)-表示所有以1开头,并且以0结尾的0、1字符串组成的语言。,利用RE的定义理解RE表示的语言,2023/8/19,Guohong Fu,School of Com
6、puter Sci&Tech,HLJU,7,RE的形式定义(cont.),RE运算符的优先级闭包运算的优先级最高乘运算“”的优先级次之加运算“+”的优先级最低在意义明确时,可以省略其中某些括号(0+1)*)000)(0+1)*)=(0+1)*000(0+1)*(0+1)*)(0+1)(0+1)*)=(0+1)*(0+1)(0+1)*,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,8,RE的形式定义(cont.),约定 用r的正闭包r+表示r与(r*)的乘积以及(r*)与r的乘积:r+=rr*=r*r在意义明确时,RE r表示的语言记
7、为L(r),也可直接记为r;加、乘、闭包运算均执行左结合规则;,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,9,RE的形式定义(cont.),相等(equivalence)设r、s是字母表上的一个RE,如果L(r)=L(s),则称r与s相等,记作r=s;相等也称为等价。,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,10,RE的形式定义(cont.),幂 r是字母表上的RE,r的n次幂定义为 r0=;rn=rn-1r,n1,2023/8/19,Guohong Fu,Sc
8、hool of Computer Sci&Tech,HLJU,11,RE的形式定义(cont.),关于RE运算的一些基本结论 结合律:(rs)t=r(st),(r+s)+t=r+(s+t);分配律:r(s+t)=rs+rt,(s+t)r=sr+tr;交换律:r+s=s+r;幂等律:r+r=r;加法运算零元素:r+=r;乘法运算单位元:r=r=r;乘法运算零元素:r=r=;(8)L()=;(9)L()=;(10)L(a)=a;,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,12,4.2 RE的形式定义(cont.),(11)L(rs)
9、=L(r)L(s);(12)L(r+s)=L(r)L(s);(13)L(r*)=(L(r)*;(14)L(*)=;(15)L(r+)*)=L(r*);(16)L(r*)*)=L(r*);(17)L(r*s*)*)=L(r+s)*);(18)如果L(r)L(s),则r+s=s;(19)L(rn)=(L(r)n;(20)rnrm=rn+m;,注意:一般地,r+r,(rs)n rnsn,rssr,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,13,RE的形式定义(cont.),例 4-2 设=0,100表示语言00;(0+1)*00(0+
10、1)*表示所有的至少含两个连续0的0、1串组成的语言;(0+1)*1(0+1)9表示所有的倒数第10个字符为1的串组成的语言;L(0+1)*011)=x|x是以011结尾的0、1串;L(0+1+2+)=0n1m2k|m,n,k1;L(0*1*2*)=0n1m2k|m,n,k0;L(1(0+1)*1+0(0+1)*0)=x|x的开头字符与尾字符相同。,利用RE的运算律理解RE表示的语言,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,14,RE与FA的等价变换,AaB B(A,a)Aa qf(A,a),RG,DFA,NFA,RE,-NF
11、A,DFA(P,a)=NFA(P,a),归纳法,图上作业法,(q,a)=pqap(q,a)=pF qa,NFA(q,a)=-NFA(q,a),RL相关模型之间的等价构造关系,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,15,从RE构造FA的等价变换,归纳法:根据RE的递归定义构造相应的FA(-NFA)(1)基础RE r=对应的FARE r=对应的FARE r=a对应的FA,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,16,从RE到FA的等价变换(cont.),(2)归
12、纳构造RE r=r1+r2对应的FA设r1M1=Q1,1,q01,qf1,r2M2=Q2,2,q02,qf2;取q0,qfQ1Q2,令 M=(Q1Q2q0,qf,q0,qf)(q0,)=q01,q02;qQ1,a,(q,a)=1(q,a);qQ2,a,(q,a)=2(q,a);(qf1,)=qf,(qf2,)=qf。,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,17,从RE到FA的等价变换(cont.),构造RE r=r1r2对应的FA设r1M1=Q1,1,q01,qf1,r1M2=Q2,2,q02,qf2;取M=(Q1Q2,q0
13、1,qf2)定义qQ1-qf1,a,(q,a)=1(q,a);qQ2-qf2,a,(q,a)=2(q,a);(qf1,)=q02。,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,18,从RE到FA的等价变换(cont.),构造RE r=r1*对应的FA设r1M1=Q1,1,q01,qf1;取q0,qfQ1,令M=(Q1q0,qf,q0,qf)定义 qQ1-f1,a,(q,a)=1(q,a);(qf1,)=q01,qf;(q0,)=q01,qf;,2023/8/19,Guohong Fu,School of Computer Sci&
14、Tech,HLJU,19,从RE到FA的等价变换(cont.),简单的例子RE 0对应的FARE 01对应的FARE 0+1对应的FARE 0*对应的FA,q0,1,S,q1,q0,0,S,q2,q1,1,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,20,从RE到FA的等价变换(cont.),例 4-3 构造与(0+1)*0+(00)*等价的FA。,(1)构造与0等价的-NFA M1;,(2)构造与1等价的-NFA M2;,(3)构造与0+1等价的-NFA M3;,(4)构造与(0+1)*等价的-NFA M4;,(5)构造与(0+
15、1)*0等价的-NFA M5;,(6)构造与00等价的-NFA M6;,(7)构造与(00)*等价的-NFA M7;,(8)构造与(0+1)*0+(00)*等价的-NFA M8;,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,21,从RE到FA的等价变换(cont.),定义4-4 正则表达式r称为与FA M等价,如果L(r)=L(M)定理 4-1 RE表示的语言是RL证明:思想施归纳于正则表达式中所含的运算符的个数n,证明对于字母表上的任意正则表达式r,存在FA M,使得L(M)=L(r);对于一个给定的正则表达式,按照正则表达式的
16、递归定义构造相应的FA;,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,22,从RE到FA的等价变换(cont.),当n=0时,由RE定义有三种情形,(1)r=,以下NFA满足要求,都表示语言;,(2)r=,以下NFA满足要求,都表示语言;,(3)r=a,以下NFA满足要求,都表示语言a;,2023/8/19,Guohong Fu,School of Computer Sci&Tech,HLJU,23,从RE到FA的等价变换(cont.),设n=k时结论成立此时有如下FAM1=(Q1,1,q01,qf1)M2=(Q2,2,q02,q
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正则 表达式 教学
链接地址:https://www.31ppt.com/p-5776770.html