私は私のコンパイラのクラスのためにいくつかの宿題に取り組んでいると私は次のような問題があります。この正規表現をさらに単純化することはできますか?
はの奇数を含ん年代とB年代のすべての文字列のための正規表現を書きますまたは奇数のb(またはその両方)です。私は、次の解決策を考え出したホワイトボードに多くの作業の後
:
(aa|bb)* (ab|ba|a|b) ((aa|bb)* (ab|ba) (aa|bb)* (ab|ba) (aa|bb)*)*
しかし、これは私がそれを得ることができる最も単純化されますか?私はDFAの構築を検討して、州の数を最小限に抑えて、それが簡素化するのに役立つかどうかを見極めましたが、私は最初に正規表現の達人に尋ねました。
regexの高度な機能をどのように使用できますか? –
彼はPCREやposix正規表現ではなく、コンピュータサイエンスで正規表現を使用しています;)それらは異なっています。 –
@ブラッドギルバート、私は、これまであまり多くはない本で紹介されている正規表現を使用することが許されていると仮定します。 (*、+、?、|、[]、^)。かなり平野。 –