为给定的语言构造正则表达式。

问题一

为接受包含任意数量 a 和 b 的所有字符串的语言编写正则表达式

解决方案

正则表达式将是 -

re = (a + b)*

这将使集合 L = {E, a, aa, b,bb,ab,ba, aba, bab,.....},a 和 b 的任意组合。

(a + b)* 显示与 a 和 b 的任意组合,甚至是空字符串。

问题二

为以 a 开头但不具有连续 b 的语言编写正则表达式。

解决方案

必须为语言构建正则表达式:L = {a, aba, aab, aba, aaa, abab, .....}

上述语言的正则表达式是 -

R = {a + ab}*

问题三

为接受所有字符串的语言编写正则表达式,其中任意数量的 a 后跟任意数量的 b 后跟任意数量的 e。

解决方案

我们知道,任意数量的 a 意味着 a* 任意数量的 b 意味着 b*,任意数量的 e 意味着 c*。因为正如问题陈述中给出的那样,b 出现在 a 之后,e 出现在 b 之后。所以正则表达式可以是 -

R = a* b* c*

问题四

描述由以下正则表达式表示的语言 re = (b* (aaa)* b*)*

解决方案

可以通过查找正则表达式的含义来从正则表达式中预测语言。我们首先将正则表达式拆分为 -

re .= (b's 的任意组合) (aaa)* (b's 的任意组合)

L = {语言由a出现三元组的字符串组成,b的个数没有限制}

以上是 为给定的语言构造正则表达式。 的全部内容, 来源链接: utcz.com/z/354423.html

回到顶部