我试图理解如何为某些语法生成正则表达式,我认为这些语法是“无限的”。我有以下Σ = {0,1}
我想到了以下三个案例,这是我给出的猜测。
0
且以11
结尾的所有字符串的集合。我的正则表达式如下:0+ [1*] [0*] 1+ 1
。但是,我知道这个表达式不会涵盖该集合中所有现有字符串的集合。1
s的所有字符串的集合。我的正则表达式如下:1 1+ [0+] [1+] 1
。与第一点相同的问题。 0
开头且没有连续两个1
s。我的正则表达式如下:0+ 1 0+ 1 [0+]
。与第一点和第二点相同的问题。 我的问题如下:是否有可能用具有有限正则表达式的无限数量的字符串来表达这些语言。如果是,究竟是怎么回事? 谢谢。
答案 0 :(得分:3)
是的,任何常规语言都可以被有限自动机识别,并且常规语言可以表达无限数量的匹配字符串。解决你的三个例子:
0 (0|1)* 1 1
(0|1)* 1 1 (0|1)*
0+ (1 0+)+ 1?