正则表达式与有穷自动机

一、正则表达式的递归定义:R是正则表达式当且仅当R是一下六种之一:

1、字母表中的单个字符;

2、epsilon;

3、∅;

4、R1∪R2(其中R1和R2都是正则表达式,下同);

5、R1R2;

6、R1*

二、优先级:星号>连接>并

三、几个恒等式:R∪∅=R;R∪epsilon=R∪{epsilon};R∅=∅;∅*={epsilon};

四、正则表达式与自动机的等价性。以此可以来证明一个语言是正则的当且仅当可用正则表达式描述。证明分两个方向:1、正则表达式描述正则语言。证明思路: 把正则表达式转化成等价的NFA,对正则表达式的六种形式分别构造。2、正则语言可用正则表达式描述。证明思路:给定DFA或NFA,构造等价正则表达式(可以通过定义广义非确定型有穷自动机GNFA,由其转化为正则表达式)

五、用泵引理证明非正则语言,通常采用反证法。

泵引理: 设A是正则语言,则存在常数p(称为泵长度),使得若s∈A且|s|≥p,则s=xyz,并且满足下述条件: 1) 对任意i≥0,xy^iz∈A; 2) |y|>0; 3) |xy|≤p.

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...