正则表达式
递归定义
- $\empty$是一个正则表达式,表示空语言$\empty$
- $\varepsilon$是一个正则表达式,表示语言$\{\epsilon\}$
- 对任意一个符号$a$,$a$是一个正则表达式,表示语言$\{a\}$,其有一个长度为 1 的字符串
- 如果$E_1$、$E_2$是正则表达式,那么$E_1+E_2$也是正则表达式,且$L(E_1+E_2)=L(E_1)\cup L(E_2)$
- 如果$E_1$、$E_2$是正则表达式,那么$E_1E_2$也是正则表达式,且$L(E_1E_2)=L(E_1)L(E_2)$
- 如果$E$是正则表达式,那么$E^*$也是正则表达式
- 如果$E$是正则表达式,那么$(E)$也是正则表达式,表示语言$L(E)$
运算符的优先级
- $()$优先级最高
- $E^*$
- $E_1E_2$
- $E_1+E_2$
示例
$(a+b)^(a+bb)$:$L((a+b)^(a+bb))=\{w|w\text{仅由a和b组成,仅以a或者bb结尾}\}$
有穷自动机和正则表达式
自动机和正则表达式的关系