常规语言和正则表达式(自动机理论)

时间:2014-03-13 19:44:46

标签: regex computation-theory

我正在阅读约翰·C·马丁的“语言和计算理论”一书。第3章第3.1节。练习之后,问题#3.7(i)"包含bb和aba作为子字符串的所有字符串的语言。"这个问题困惑了我"。

这是我做的表达。我不知道它的好坏:

"(a+b)*((bb(a+b)*aba)+(bb(a+b)*aba))(a+b)*".

我也对" +"感到困惑。和" |"符号。我认为是一样的。是不是? (是?/否?)...

1 个答案:

答案 0 :(得分:0)

+和|实际上是非常不同的。 a +与写a(a *)相同。它告诉你一次或多次写字符串。 |是一个给你一个选择的运算符。 (a | b)告诉你选择a或b。

您选择的表达式似乎正确,但所有+都应转换为|。