2017-08-28 84 views
-1

我需要找到a,b和c的所有字符串 的语言的简化正则表达式,其中a永远不会紧跟在后面湾找到一个正则表达式,其中a永远不会紧接着b(形式语言的理论)

我想什么,伸出直到(A + C)* C(B + C)* +(B + C)*(A + C)*

这是罚款,如果是的话可以这样简单?

在此先感谢。

+0

您是否问过关于编程中使用的正则表达式或理论上的正则表达式?后者属于math.stackexchange.com。 – Barmar

+0

理论。好的谢谢。我已经将它发布在math.stackexchange.com –

+5

我投票结束这个问题作为题外话题,因为它是关于数学正则表达式的,并已在math.SE上转贴。 – Barmar

回答

0

您的解决方案包含所需的语言只有字符串。但是,它并不包含所有这些。例如acbac不包含在内。你的基本想法很好,但你需要能够迭代可能的因素。在:

(b+c)*(a (a)*(c(b+c)*)*)* 

第一部分生成没有a的所有字符串。

第一个a之后,没有任何东西,另一个a或c。另一个离开我们有三个选项。 c基本上再次开始游戏。这是第一次正式化后的部分。许多*需要在所有不同的选项中生成空字符串。