04 正则表达式.ppt
《04 正则表达式.ppt》由会员分享,可在线阅读,更多相关《04 正则表达式.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1形式语言与自动机朴秀峰朴秀峰2主要内容主要内容q正则文法擅长语言的产生,有穷状态自动机擅长语言的识别。正则文法擅长语言的产生,有穷状态自动机擅长语言的识别。q本章讨论正则语言的正则表达式描述。它在对正则语言的表达上具有本章讨论正则语言的正则表达式描述。它在对正则语言的表达上具有特殊的优势,为正则语言的计算机处理提供了方便条件。特殊的优势,为正则语言的计算机处理提供了方便条件。简洁简洁更接近语言的集合表示和语言的计算机表示等。更接近语言的集合表示和语言的计算机表示等。q主要内容主要内容典型典型RE的构造。的构造。与与RE等价等价FA的构造方法。的构造方法。与与DFA等价的等价的RE的构造。的构
2、造。34.1启示启示产产生生语语言言anbmck|n,m,k1aicnbxam|i0,n1,m2,x为为d 和和e组组成成的的串串的正则文法为的正则文法为AaA|aB|cEBbB|bCCcC|cEcE|bFFdF|eF|aHHaH|a44.1启示启示计算集合计算集合set(q)set(A)=an|n0=a*set(B)=set(A)abn|n0=anabm|m,n0=a*ab*=a+b*set(C)=set(B)bc*=a*ab*bc*=a+b+c*set(D)=set(C)c=a+b+c*c=a+b+c+54.1启示启示set(E)=set(A)cc*=a*cc*=a*c+set(F)=se
3、t(E)bd,e*=a*c+bd,e*set(H)=set(F)aa*=a*c+d,e*aa*=a*c+d,e*a+set(I)=set(H)a=a*c+d,e*a+aL(M)=set(D)set(H)=a+b+c+a*c+d,e*a+a64.1启示启示根据集合运算的定义,根据集合运算的定义,d,e=de。从而,从而,d,e*=(de)*。这样可以将这样可以将 L(M)写成如下形式:写成如下形式:L(M)=a+b+c+a*c+(de)*a+a记作:记作:a+b+c+a*c+(d+e)*a+a=aa*bb*cc*+a*cc*(d+e)*aaa*74.2正则表达式的形式定义正则表达式的形式定义q正
4、则表达式正则表达式(regularexpression,RE)设设是一个字母表,是一个字母表,(1)是是上的正则表达式,它表示语言上的正则表达式,它表示语言;(2)是是上的正则表达式,它表示语言上的正则表达式,它表示语言;(3)对于对于 a,a 是是上的正则表达式,它表示语言上的正则表达式,它表示语言a;(4)如果如果r 和和s 分别是分别是 上表示语言上表示语言R和和S的的RE,则:,则:r 与与s 的的“和和”(r+s)是是上的上的RE,(r+s)表达的语言为表达的语言为RS;r 与与s 的的“乘积乘积”(rs)是是上的上的RE,(rs)表达的语言为表达的语言为RS;r 的的克林闭包克林闭
5、包(r*)是是上的上的RE,(r*)表达的语言为表达的语言为R*。(5)只有满足只有满足(1),(2),(3),(4)的表达式才是的表达式才是上的正则表达式。上的正则表达式。8正则表达式举例正则表达式举例 设设=0,1(1)0,表示语言,表示语言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)*),表表示示
6、0,1上上的的至至少少含含有有3个个连连续续0的的串串组组成成的的语语言;言;(9)(0+1)*)0)1),表示所有以,表示所有以01结尾的结尾的0,1字符串组成的语言;字符串组成的语言;(10)(1(0+1)*)0),表表示示所所有有以以1开开头头,并并且且以以0结结尾尾的的0,1字字符符串串组组成成的的语言。语言。9约定(1)r的正闭包的正闭包r+表示表示r 与与(r*)的乘积以及的乘积以及(r*)与与r的乘积:的乘积:r+=(r(r*)=(r*)r)(2)闭包运算的优先级最高,乘运算的优先级次之,加运算闭包运算的优先级最高,乘运算的优先级次之,加运算“+”的优先的优先级最低。所以,在意义
7、明确时,可以省略其中某些括号。级最低。所以,在意义明确时,可以省略其中某些括号。(0+1)*)000)(0+1)*)=(0+1)*000(0+1)*(0+1)*)(0+1)(0+1)*)=(0+1)*(0+1)(0+1)*(3)在意义明确时,在意义明确时,REr 表示的语言记为表示的语言记为L(r),也可以直接地记为,也可以直接地记为r。(4)加、乘、闭包运算均执行左结合规则。加、乘、闭包运算均执行左结合规则。(5)相等相等(equivalence)r,s是字母表是字母表上的一个上的一个RE,如果,如果L(r)=L(s),则称,则称r 与与s相等,记作相等,记作r=s。相等也称为等价。相等也称
8、为等价。10基本结论(1)结合律:结合律:(rs)t=r(st)(r+s)+t=r+(s+t)(2)分配律:分配律:r(s+t)=rs+rt(s+t)r=sr+tr(3)交换律:交换律:r+s=s+r(4)幂等律:幂等律:r+r=r(5)加法运算单位元:加法运算单位元:r+=r(6)乘法运算单位元:乘法运算单位元:r=r=r(7)乘法运算零元素:乘法运算零元素:r=r=(8)L()=(9)L()=。(10)L(a)=a。11基本结论(11)L(rs)=L(r)L(s)。(12)L(r+s)=L(r)L(s)。(13)L(r*)=(L(r)*。(14)L(*)=。(15)L(r+)*)=L(r*
9、)。(16)L(r*)*)=L(r*)。(17)L(r*s*)*)=L(r+s)*)。(18)如果如果L(r)L(s),则,则r+s=s。12幂的定义q幂幂r是字母表是字母表上的上的RE,r的的n次幂定义为次幂定义为(1)r0=。(2)rn=rn-1r。q基本结论基本结论(19)L(rn)=(L(r)n。(20)rnrm=rn+m。一般地,一般地,r+r,(rs)nrnsn,rssr。13正则表达式举例设设=0,1q00表示语言表示语言00;q(0+1)*00(0+1)*表示所有的至少含两个连续表示所有的至少含两个连续0的的0,1串组成的语言;串组成的语言;qL(0+1)*011)=x|x 是
10、以是以011结尾的结尾的0,1串串;qL(0+1+2+)=0n1m2k|m,n,k1;qL(0*1*2*)=0n1m2k|m,n,k0;qL(1(0+1)*1+0(0+1)*0)=x|x的开头字符与尾字符相同的开头字符与尾字符相同。14举例q构造一个正则表达式,使它能代表十进制正整数的集合。构造一个正则表达式,使它能代表十进制正整数的集合。(1+2+3+4+5+6+7+8+9)(0+1+2+3+4+5+6+7+8+9)*q构造一个正则表达式,使它能代表如下的集合构造一个正则表达式,使它能代表如下的集合S:S的每个元素都是倒的每个元素都是倒数第十个字符是数第十个字符是1的的0、1串。串。(0+1
11、)*1(0+1)(0+1)(0+1)(0+1)(0+1)(0+1)(0+1)(0+1)(0+1)(0+1)*1(0+1)9构造一个正则表达式,使它能代表能被构造一个正则表达式,使它能代表能被3整除的二进制数?整除的二进制数?154.3 RE 与 FA 等价 q正则表达式正则表达式r称为与称为与FAM等价,如果等价,如果L(r)=L(M)。q从开始状态出发,根据状态之间按照转移所确定的后继关系,依次计从开始状态出发,根据状态之间按照转移所确定的后继关系,依次计算出所给算出所给FA的各个状态的各个状态q对应的对应的set(q),并且最终得到相应的,并且最终得到相应的FA接接受的语言的受的语言的RE
12、表示。表示。q寻找一种比较寻找一种比较“机械机械”的方法,使得计算机系统能够自动完成的方法,使得计算机系统能够自动完成FA与与RE之间的转换。之间的转换。16RE到FA的等价变换 0对应的对应的FA01对应的对应的FA0+1对应的对应的FA0*对应的对应的FA17定理4-1 定理定理4-1正则表达式表示的语言是正则语言正则表达式表示的语言是正则语言。证明思路:证明思路:施归纳于正则表达式中所含的运算符的个数施归纳于正则表达式中所含的运算符的个数n,证明证明对于字母表对于字母表上的任意正则表达式上的任意正则表达式r,存在,存在FAM,使得使得L(M)=L(r),并且,并且M恰有一个终止状态。恰有
13、一个终止状态。M在终止状态下不作任何移动。在终止状态下不作任何移动。18定理 4-1当当n=0时,有如下时,有如下3种情况:种情况:(1)r=(2)r=(3)r=a 19定理 4-1假设结论对于假设结论对于nk时成立,则当时成立,则当n=k+1时,时,r 有有3种情况:种情况:(1)r=r1+r2(2)r=r1r2(3)r=r1*此时此时r1,r2中所含的运算符的个数不会大于中所含的运算符的个数不会大于k。由归纳假设,存在满足要求的由归纳假设,存在满足要求的NFA:M1=(Q1,1,q01,f1)M2=(Q2,2,q02,f2)使得使得L(M1)=L(r1),L(M2)=L(r2)。由于可以对
14、状态进行重新命名,不妨设由于可以对状态进行重新命名,不妨设Q1Q2=。20定理 4-1(1)r=r1+r2q01M1f1q02M2f2fq0S取取q0,f Q1Q2,令,令M=(Q1Q2q0,f,q0,f)(q0,)=q01,q02;对对 qQ1-f1,a,(q,a)=1(q,a);对对 qQ2-f2,a,(q,a)=2(q,a);(f1,)=f;(f2,)=f。21定理 4-1在在M1和和M2中,对于中,对于 a,1(f1,a)=2(f2,a)=,所以所以M1和和M2中的所有状态转移均包含在中的所有状态转移均包含在M 的状态转移中的状态转移中。往证往证L(r1+r2)=L(M)。由归纳假设由
15、归纳假设L(r1)=L(M1),L(r2)=L(M2)根据正则表达式的定义根据正则表达式的定义L(r1+r2)=L(r1)L(r2)只需证明只需证明L(M)=L(M1)L(M2)先证先证L(M1)L(M2)L(M)设设xL(M1)L(M2),从而有,从而有xL(M1)或者或者xL(M2)。22定理 4-1当当xL(M1)时,时,1(q01,x)=f1(q0,x)=(q0,x)=(q0,),x)=(q01,q02,x)=(q01,x)(q02,x)=(q01,x),)(q02,x),)=(1(q01,x),)(2(q02,x),)=(f1,)(2(q02,x),)=f(2(q02,x),)即即x
16、L(M)同理可证,当同理可证,当xL(M2)时,时,xL(M)。故故L(M1)L(M2)L(M)。23定理 4-1再再证证L(M)L(M1)L(M2)。设设xL(M),即有,即有f(q0,x)(q0,x)=(q0,x)=(q0,),x)=(q01,q02,x)=(q01,x)(q02,x)=(q01,x),)(q02,x),)=(1(q01,x),)(2(q02,x),)f(q0,x),并且此,并且此时时M的最后一次移的最后一次移动动必是根据如下两个定必是根据如下两个定义义式之一式之一进进行的移行的移动动:(f1,)=f,(f2,)=f 24定理 4-1如果根据定如果根据定义义式式(f1,)=
17、f 进进行的最后一次移行的最后一次移动动,注意到注意到Q1Q2=,则此时必有,则此时必有(q01,x)=f1即即 xL(M1)。如果根据定如果根据定义义式式(f2,)=f 进进行的最后一次移行的最后一次移动动,注意到注意到Q1Q2=,则此时必有,则此时必有(q02,x)=f2即即 xL(M2)。综上,综上,xL(M1)L(M2)所以所以L(M)L(M1)L(M2)。综上所述,综上所述,L(M)=L(M1)L(M2)。这说明这说明M与与r 等价等价。25定理 4-1q01M1f1q02M2f2S(2)r=r1r2M=(Q1Q2,q01,f2)对对 qQ1-f1,a(q,a)=1(q,a);对对
18、qQ2,a(q,a)=2(q,a);(f1,)=q02仅仅需需证证明明L(M)=L(M1)L(M2)。26定理 4-1(3)r=r1*q01M1f1fSq0M=(Q1q0,f,q0,f)其中其中q0,f Q1,定,定义义为为对对 qQ1-f1,a,(q,a)=1(q,a)。(f1,)=q01,f。(q0,)=q01,f。27定理 4-1q按照定理按照定理4-1证明给出的方法构造一个给定证明给出的方法构造一个给定RE的等价的等价FA时,该时,该FA有可能含有许多的空移动。有可能含有许多的空移动。q可以按照自己对给定可以按照自己对给定RE的的“理解理解”以及对以及对FA的的“理解理解”“直接地直接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 正则表达式 正则 表达式
限制150内