zoukankan      html  css  js  c++  java
  • 2.2正规式

    正规式是正则表达式,它是一种表示正规集的工具。 而且一个正规式它是对应于一个正规文法的正规文法是3型文法。既然一个正规式对应一个正规文法,那么它们之间肯定是能够进行转换的。从正规文法转向正规式。规则2:A->xA|y有一个递归,递归体现在A->xA

    三个规则涵盖了所有的情况,不是说一个式子里面套用一个规则就行了,规则只是最简单最基本的一种形式,然后呢到具体的文法当中就可能用到规则的组合了。

    S->xSx|y与规则2非常类似,与规则2不同的是后面多了一个x。那样就要灵活应用规则2.把式子拆开。一个式子是S->xS|y,S->xS|y可以得到x*y.另外一个式子

    S->Sx|y,S->Sx|y可以得到yx*.把x*y和yx*合并之后可以得到x*yx*.n>=0,x可以从0个到n个。n=0,S=y,就是S直接推导出y。


    正规式表达的串是具有什么特征的串。①②③三个串的共同特征都是以b结尾。(aa*|ab)*b这种串要么是若干个a,要么是ab组成的。而且ab和若干个a可以交替出现。如果说出现一个b,前面必须有一个a。不可能一眼把所有正规式的特征分析出来。在考场上分析出正规式的一部分特征就可以解题了。①的特征是任何一个b之前肯定有一个a。②(a|b)*②描述的是由a和b组成的若干长度的串。①有限制,任何一个b之前有一个a。而②没有这种限制。①②③都是把*b划开来看,因为*b是相同的部分。③的特色是它涵盖了②。③是((a|b)*|aa)*b,也就是说③可以看成是((a|b)*)*b,就是任意长度的由a和b组成的串。|不是必要组成部分,所以②和③除了末尾是b以外,前面是若干个a和b组成的串。这种正规式题目没有固定的规律可循,了解|和*它们的规则,然后呢进行灵活处理。看这种正规式能够描述什么样的串来进行解题。


    a*代表的是若干个a,包括0个a。b*代表0或者是若干个b。b*代表0-若干个b。b*b是至少有0个b,他最多有若干个b。a*bb*这样b至少会出现1个。而a的数量是0-多个。

  • 相关阅读:
    常用 Git 命令
    Flex布局
    React-Redux系列4:增加listData列表数据
    React-Redux系列3:修改Store state的值
    React-Redux系列2:Provider提供器和Connect连接器
    React-Redux系列1:简介和安装
    Redux中间件redux-saga中间件之安装、配置、使用
    Redux中间件redux-thunk中间件之安装、配置、使用
    Redux优化之JS纯函数(Pure Function)
    浅谈JS纯函数
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6920600.html
Copyright © 2011-2022 走看看