正则文法 如何转 正则表达式 ?
公式如下表所示:
正则文法 | 正则表达式 |
A -> αB B -> β | A -> αβ |
A -> αA | β | A -> α*β |
A -> α A -> β | A -> α | β |
例题1:正则文法G[S]如下所示:
S -> aA
S -> a
A -> aA
A -> dA
A -> a
A -> d
转化为正则表达式。
解:
对S -> aA,S -> a用公式③得,S -> aA | a ..............(1)
对A -> aA,A -> dA用公式③得,A -> aA | dA ............. (2)
对A -> a,A -> d用公式③得,A -> a | d ............. (3)
对(2)式和(3)式用公式③得,A -> (aA|dA) | (a|d) ,即 A -> (a|d)A | (a|d) ............. (4)
对(4)式用公式②得,A -> (ald)*(a|d) ............. (5)
对(1)式S -> aA | a ,有S -> aA | aε (εr=r,rε=r,ε是连接的恒等元素),即S -> a(A|ε)
把(5)式带入,得S -> a((ald)*(a|d)| ε)
即:S -> a(ald)*