- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 正则定义 如要为一个或多个数字序列写一个正则表达式,则可写作: (0|1|2|…|9)(0|1|2|…9)* 或写作 digit digit* 其中 digit= 0|1|2|…|9就是名字digit的正则定义,表示为: digit ? 0|1|2|…|9 * /29 * 正则定义 如要为一个或多个数字序列写一个正则表达式,则可写作: (0|1|2|…|9)(0|1|2|…9)* 或写作 digit digit* 其中 digit= 0|1|2|…|9就是名字digit的正则定义,表示为: digit ? 0|1|2|…|9 正则名 宏正则表达式。其中只允许出现已定义的正则名,而不允许包含未定义的正则名 * /29 * 正则定义 例:M1 ?e1; M2 ?e2; M3 ?e3; M ?(M1M2|M3)* A ?0 表示符号串 0?A 或 A生成 符号串0 ? 读作“生成” 或 “由….组成” * /29 * 正则表达式的缩写形式 一个或多个实例 一元后缀算符“+”,表示“一个或多个实例” 例:a+表示一个或多个a的所有串的集合。 r*=r +|λ r +=r r* 零个或一个实例 一元后缀算符“?” 表示“零个或一个实例” 例: (r)? 表示 L(r) ?|λ| 字符组 [abc] 表示 正则表达式 a | b | c * /29 * 习题作业 1、叙述由正规式0(0|1)*0所描述的语言。 以0开始并且以0结尾的字符串 2、一个语言的非形式化定义为:字母表{0,1}上所有不含子串001的0、1串。试写出它的正则表达式。 * /29 * 重点 正则表达式的性质 用正则表达式描述字符串 * /29 * * Any Question? Thank you !!! * * * * * * * * * * * * * * * * * * * * * * * * * * /29 CS_Dept. GDCC Hjj CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 CS_Dept. GDCC Hjj * /29 3.3 正则表达式 广东商学院信息学院 胡建军 正则表达式 描述程序设计语言中单词的一种简单而且数学化的工具。 表示符号串的构成模式 正则表达式r定义了一个符号串集合rs, rs内的每个符号串都与r所定义的模式相匹配,rs称为由r生成的语言L(r) 正则表达式中出现的所有符号构成的集合为该正则表达式的字母表,用S表示 正则表达式 主要内容: 基本概念 正则表达式定义及一些性质 扩充的正则表达式及程序设计语言中单词的定义 正则表达式的局限性。 正则定义 正则表达式(正规式) 基本概念: 字母表:非空有限集,?,其元素称为符号或字母. 符号串:符号的有限序列,也称为‘字’。?或?表示空串 空串集{?}不同于空集? 。 符号串长度:符号串中字符的个数.|?| 符号串连接:?和?都是符号串,则??为符号串的连接 特别有:?? = ?? = ? 符号串集的乘积:A和B是符号串的集合,则称 AB={??| ??A,? ?B} 特别有:?A=A?=A,其中?表示空集。 符号串的方幂: 设A是符号串的集合,则称Ai为符号串集A的方幂,其中i是非负整数。 A0 ={?} A1 = A , A2 = A A AK = AA......A(k个) 符号串集合的正闭包: A+ =A1 ? A2 ?A3 ...... 符号串集合的星闭包: A* =A0 ? A1 ? A2 ?A3 ...... A* = A+ ? A0 = A+ ? {?} * /29 * 例:设字母表?={a-zA-Z} ,串集A={a},串集B={bcd} 则 A2
文档评论(0)