为给定的语言构造正则表达式。
问题 1
编写接受包含任意数量的 a 和 b 的所有字符串的语言的正则表达式。
解答
正则表达式将是:
r.e. = (a + b)*
这将给出集合 L = {E, a, aa, b,bb,ab,ba, aba, bab,.....},a 和 b 的任意组合。
(a + b)* 表示 a 和 b 的任意组合,甚至包括空字符串。
问题 2
编写以 a 开头但不包含连续 b 的语言的正则表达式。
解答
必须为以下语言构建正则表达式:L = {a, aba, aab, aba, aaa, abab, .....}
上述语言的正则表达式为:
R = {a + ab}*
问题 3
编写接受所有字符串的语言的正则表达式,其中任意数量的 a 后跟任意数量的 b,再后跟任意数量的 c。
解答
众所周知,任意数量的 a 表示为 a*,任意数量的 b 表示为 b*,任意数量的 c 表示为 c*。根据题目描述,b 出现在 a 后面,c 出现在 b 后面。所以正则表达式可以是:
R = a* b* c*
问题 4
描述以下正则表达式表示的语言 r.e. = (b* (aaa)* b*)*
解答
可以通过找到正则表达式的含义来预测该语言。我们将首先将正则表达式拆分为:
r.e. =(任意数量的 b) (aaa)* (任意数量的 b)
L = {该语言由字符串组成,其中 a 以三元组出现,对 b 的数量没有限制}
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP