备注:此博客仅作私人用于读书笔记记录,不作为商业用途,若有侵权,请通过此网站联系博主。谢谢!
第三章:正则表达式与正则语言
正则表达式能定义所有并且只有正则语言。
3.1正则表达式
正则表达式恰好定义了与各种形式的自动机所描述的相同的语言:正则语言。但正则表达式提供了自动机所没有的东西:一种表达要接受的串的声明的方式。因此,正则表达式可作为许多串处理系统的输入语言。比如:
1.搜索命令
2.词法分析器生成器
3.1.1 正则表达式运算符
正则表达式运算符所代表的三种语言运算:
1.两个语言L和M的并,记作L∪M,是只属于L或只属于M,或者同时属于二者的串的集合。
2.语言L和M的连接是一下形成的串的集合:取L中任意一个串,与M中任意一个串连接起来
3.语言L的闭包(或星,或克林闭包),记作L*,表示用一下方式形成的串的集合:从L中取任意多个串,可能有重复(即可以多次选同一个串),把所有这些串连接起来。
3.1.2 构造正则表达式
正则表达式代数遵循模式使用表示语言的常量和变量。以及3.1.1中的三种运算:并、点和星。
3.1.3正则表达式运算符的优先级
正则表达式运算符的优先级顺序:
1.星运算符具有最高优先级。
2.下一个优先级是连接即“点”运算符。
3.最后把所有的并(+运算符)与运算对象