Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式:字母表{0,1}中10的补码_Regex - Fatal编程技术网

Regex 正则表达式:字母表{0,1}中10的补码

Regex 正则表达式:字母表{0,1}中10的补码,regex,Regex,我有字母表{0,1},我想找到正则表达式(0+10)*描述的语言的补码。据我所知,它必须是一个包含除“10”部分以外的任何内容的字符串,即它可以是一个空字符串,也可以是一个包含“00”、“01”或“11”以及所有这些内容的组合的字符串。我下面的教程给出了我无法给出答案的可能解决方案: 1) (0+1)*11(0+10)* + (0+1)*1 2) (0+1)*11(0+10)* + (0+10)*1 3) (0+1)*(1+11)(0+1)* 4) (0+

我有字母表{0,1},我想找到正则表达式(0+10)*描述的语言的补码。据我所知,它必须是一个包含除“10”部分以外的任何内容的字符串,即它可以是一个空字符串,也可以是一个包含“00”、“01”或“11”以及所有这些内容的组合的字符串。我下面的教程给出了我无法给出答案的可能解决方案:

1)      (0+1)*11(0+10)* + (0+1)*1
2)      (0+1)*11(0+10)* + (0+10)*1
3)      (0+1)*(1+11)(0+1)*
4)      (0+10)*11(0+10)*
我已经完成了e-NFA、DFA的过程,并返回到一个正则表达式,可以在这里看到:

其中1、2、3和4由以下公式给出:

1 = {B, C, D, E}
2 = {B, C, D, E, F, H}
3 = {I}
4 = {B, C, D, E, G, H}
这给了我下面的补充正则表达式,它似乎不接近上面的1到4:

(1+00*1)*(0(1+00*1))* = 0(1+00*1)
我希望有人能澄清这一点。提前感谢,,
所以一般来说,你必须通过确定性有限自动机来补充正则表达式。(请参阅。)但您可以在这里通过检查来完成

正则表达式
^(0+10)*$
匹配空字符串加上所有其他二进制字符串,这些字符串以
0
开头,以
10
结尾,并且在任何一对
1
之间至少有两个
0
s。(我假设正则表达式要被锚定;如果它匹配所有包含匹配项的字符串,这将成为一个更难的问题。)

因此,补码仅包含以
1
开头、以
1
00
结尾的非空二进制字符串,或包含
11
101
其中的任何位置。这里有一种将其编码为正则表达式的方法:

(^1|(1|00)$|10?1)

但毫无疑问,还有更简单的方法。

因此,一般来说,您必须通过确定性有限自动机来补充正则表达式。(请参阅。)但您可以在这里通过检查来完成

正则表达式
^(0+10)*$
匹配空字符串加上所有其他二进制字符串,这些字符串以
0
开头,以
10
结尾,并且在任何一对
1
之间至少有两个
0
s。(我假设正则表达式要被锚定;如果它匹配所有包含匹配项的字符串,这将成为一个更难的问题。)

因此,补码仅包含以
1
开头、以
1
00
结尾的非空二进制字符串,或包含
11
101
其中的任何位置。这里有一种将其编码为正则表达式的方法:

(^1|(1|00)$|10?1)

但毫无疑问,还有更简单的方法。

您使用的是什么口味的正则表达式?你能提供更多关于你想要匹配的内容和你尝试过的内容吗?“所述语言的补语”是什么意思?请注意,补语不能包含空字符串,因为您要补语的语言包含它。如果
10
不可能,那么一旦您得到
1
,则
0
将被禁止。除非我误解了你对输入内容的描述。i、 e.解决方案是
0*1*
加上一些避免空字符串的东西(即
0+1*| 0*1+
),在我阅读时,输入可以是0和1的任何字符串,包括空字符串,并且每个1后面必须跟一个零。这就是我需要补充的。你用的是什么味道的正则表达式?你能提供更多关于你想要匹配的内容和你尝试过的内容吗?“所述语言的补语”是什么意思?请注意,补语不能包含空字符串,因为您要补语的语言包含它。如果
10
不可能,那么一旦您得到
1
,则
0
将被禁止。除非我误解了你对输入内容的描述。i、 e.解决方案是
0*1*
加上一些避免空字符串的东西(即
0+1*| 0*1+
),在我阅读时,输入可以是0和1的任何字符串,包括空字符串,并且每个1后面必须跟一个零。这就是我需要补充的。我试着按照一般的方式,但我的答案似乎还不正确。我试着按照一般的方式,但我的答案似乎还不正确。