2.3 正则表达式 主要内容: 1.正则表达式和正则集; 2.正则表达式和有限自动机的相互转化。.

Slides:



Advertisements
Similar presentations
2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
Advertisements

专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
林園高中適性入學 高雄區免試入學 及 特色招生介紹 1. 國中學生 國中教育會考 1 ( 每年五月 ) 特色招生 術科考試 五專 免試入學 ( 每年六月 ) 特色招生 甄選入學 高中高職 免試入學 擇一報到 林園高中適性入學  入學管道流程 2.
2 、 5 的倍数特征 集合 2 的倍数(要求) 在百数表上依次将 2 的倍数找出 并用红色的彩笔涂上颜色。
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
信号与系统 第三章 傅里叶变换 东北大学 2017/2/27.
控制方长投下的子公司,需要编制合并报表的演示思路
复习: :对任意的x∈A,都有x∈B。 集合A与集合B间的关系 A(B) A B :存在x0∈A,但x0∈B。 A B A B.
判断推理,必须学会这些 主讲老师:小胡胡 2016年3月25日20:00 YY频道:
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
企劃撰寫.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
华东师范大学 软件工程硕士答辩名单 时间:2016年5月14日、15日.
中央广播电视大学开放教育 成本会计(补修)期末复习
《高等数学》(理学) 常数项级数的概念 袁安锋
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
第三章 词法分析与有穷自动机 有穷自动机是构造词法分析程序的理 论基础。本章主要介绍词法分析程序的 设计原理和构造方法,重点介绍有穷自
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
一、原函数与不定积分 二、不定积分的几何意义 三、基本积分公式及积分法则 四、牛顿—莱布尼兹公式 五、小结
中考语文积累 永宁县教研室 步正军 2015.9.
小学数学知识讲座 应用题.
倒装句之其他句式.
同学们好! 肖溪镇竹山小学校 张齐敏.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
第二章 矩阵(matrix) 第8次课.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
正则表达式 描述模式的手段 例: (01)0* = ({0}{1}){0}* = {0,1}{0}* 《理论计算机科学基础》
编译原理与技术 词法分析(1) 2018/11/28 《编译原理与技术》讲义.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
元素替换法 ——行列式按行(列)展开(推论)
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
第二章 Java语言基础.
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
第二章 词法分析 (Lexical Analysis)
计算.
班級:財金一A 姓名:吳佩玲 學號:4990S024 指導老師:蔡享翰 老師
实数与向量的积.
自动机与形式语言 报告人:姜勇刚 郑奘巍.
第二章 词法分析3 非确定有限自动机NFA 非确定有限自动机(NFA)的定义 NFA的确定化:NFA到DFA的转换(子集法)
离散数学─归纳与递归 南京大学计算机科学与技术系
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
大綱:整數的加法 整數的減法 蘇奕君 台灣數位學習科技股份有限公司
第九节 赋值运算符和赋值表达式.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
词法分析
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第八节 算术运算符和算术表达式.
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
高中数学必修 平面向量的基本定理.
§2 方阵的特征值与特征向量.
第二章 形式语言与自动机 Part II自动机.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
数据表示 第 2 讲.
第三章:词法分析 戴新宇 南京大学 计算机科学与技术系.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
§4.5 最大公因式的矩阵求法( Ⅱ ).
编译原理实践 6.程序设计语言PL/0.
最小生成树 最优二叉树.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
9.3多项式乘多项式.
Presentation transcript:

2.3 正则表达式 主要内容: 1.正则表达式和正则集; 2.正则表达式和有限自动机的相互转化。

一、正则表达式和正则集 描述程序设计语言中单词的一种简单而且数学化工具。 表示符号串的构成模式。 正则表达式r定义了一个符号串集合rs, rs内的每个符号串都与r所定义的模式相匹配,rs称为由r生成的语言,记作L(r)。 正则表达式所表示的符号串集合又称为正则集。 正则表达式是表示給定字母表上的符号串集合的一种工具。

(一)正则表达式和正则集的定义 定义1:设∑为有限字母表,在∑上的正则表达式和正则集可递归定义如下: (1)  和是∑上的正则表达式,它们表示的正则集分别为{ε}和; (2) 对任何a∈∑,a 是∑上的正则表达式,它所表示的正则集为{a}; (3) 若r,s都是正则表达式,它们表示的正则集分别为R和S, 则(r)、r|s、rs、(r)*也是正则表达式,它们分别表示的正则集是:R,R∪S , RS和R*。

注意: (4) 有限次使用上述三条规则构成的表达式,称为∑上的正则表达式,仅由这些正则表达式表示的集合称为正则集。 1.“|” 读作“或”,“” 读作“连接”,“ * ” 读作“闭包”。 2. “|” 、“” 和“ * ”的优先级为:先“ * ”、次“”、最后“|”。 3. “|” 、“” 和“ * ”的结合性为左结合。

是正则表达式,即  R其中L( )={ }; a  是正则表达式,即a  R其中L(a )={a}; 设A和B是正则表达式,即A R ,B R ,则有:   (A) R , L((A))= L(A)   A|B R , L(A|B)= L(A) ∪ L(B) A  B R , L(A  B)= L(A)L(B)   A* R , L(A*)= (L(A))*

上所有以a为首后跟任意多个(包括0个)b的字符串集 (二)正则表达式示例 ={ a,b }. 正则表达式e L(e) 1.a {a} 2.a|b {a, b} 3.ab { ab } 4.(a|b) (a|b) {aa, ab, ba, bb} 5. a* {ε,a,aa,aaaa,…} 6. a(b)* 上所有以a为首后跟任意多个(包括0个)b的字符串集 7.a(a|b)* 上所有以a为首的字符串集

(三)正则表达式的性质 正则表达式的等价 A | B = B | A | 的可交换性 A | (B | C) =(A | B ) C | 的可结合性 A (B C) =(A B )C 连接的可结合性 A (B | C) =A B | A C 连接的可分配性 (A | B ) C =A C | B C 连接的可分配性 A** =A* 幂的等价性 A  =  A=A 是连接的恒等元素

符号范围: [0--9] [a--z] [A--Z] 不在给定范围内的符号: ~(a|b|c)或[La] [Labc] (四)扩充的正则表达式 一次或多次重复: A+ 任何符号: “…” 在字母表中任何符号. 符号范围: [0--9] [a--z] [A--Z] 不在给定范围内的符号: ~(a|b|c)或[La] [Labc] 0或1次(可选): r?=( |r)

为较长的正则表达式提供一个简化了的名字。例:为一个或多个数字组成的数字序列写一个正则表达式,则可写作: (五)正则定义 为较长的正则表达式提供一个简化了的名字。例:为一个或多个数字组成的数字序列写一个正则表达式,则可写作: (0|1|2|3|4|5|6|7|8|9) (0|1|2|3|4|5|6|7|8|9)* 或写作 digit digit* 其中 digit就是数字的正则定义,表示为: digit = 0|1|2|3|4|5|6|7|8|9

identifier=letter(letter|digit)* 数字 整数Int=[1-9]Digit*|0 实数real=Int.Int 例:程序设计语言中单词的正则表达式定义 保留字 如 Begin=begin 标识符 letter=[a-z,A-Z] digit=[0-9] identifier=letter(letter|digit)* 数字 整数Int=[1-9]Digit*|0 实数real=Int.Int 特殊符号 +|-|…

(六)正则表达式的局限性 正则表达式不能用于描述配对或嵌套的结构 正则表达式不能用于描述重复串 例:{w c w | w是a和b的串}无法用正则表达式表示(保证两边w是相同的)。

二、正则表达式和有限自动机的相互转化 定理 1 对∑上的每一个正则表达r,存在一个∑上的非确定有限自动机M,使得 L(M) = L(r) 。

证明:对于字母表∑上的任意一个正则表达式R,一定可以构造出一个非确定有限自动机 M, 使得L(M)=L(R)。 Step1:首先构造此非确定有限自动机M的初始状态S和终止状态Z,由S射出指向Z的有向弧上标记正则表达式R, step2:反复利用下述的替换规则对正则表达式R依次进行分解,直至状态转换图中所有有向弧上标记的符号都是字母表∑上的元素或为止。

例 :有正规表达式(a|b)*aa, 为之构造等价的NFA。

定理2:对于字母表∑上的非确定有限自动机M,存在∑上的正则表达式R,使得L(R) = L(M)。 证明: Step1:在M的状态转换图中加入两个节点,一个是唯一的开始状态节点S,另一个是唯一的终止状态节点Z 。从S出发用标有ε的有向弧连接到M 的所有初始状态节点上,从M 的所有终止状态节点用标有ε的有向弧连接到Z节点. Step2:反复利用下述的替换规则进行替换,直到状态转换图中只剩下节点S和Z,在S指向Z的有向弧上所标记正则表达式就是所求的结果。

规则1及规则2:

规则3:

例 有如下图所示的NFA M,试构造与之等价的正则表达式r

单元总结 三个工具: 文法、 有限自动机、正则表达式 三个算法: 一个实现: DFA的实现 正则表达式与FA的相互转换 NFA到DFA的转换 文法、 有限自动机、正则表达式 三个算法: 正则表达式与FA的相互转换 NFA到DFA的转换 DFA的化简 一个实现: DFA的实现

作业 S={a,b,c} 试给出S-上一个不包含连续两个b的所有符号串集合的正则定义. 叙述正则式((b|c)*a(b|c)*a)*(b|c)* 描述的符号串 S ={0,1} 叙述正则式 (00 | 11) ( (01 | 10) (00 | 11)  (01 | 10 ) )  (00 | 11)  描述的符号串 给出能被5整除的二进制数表示形式的正则定义。