Regex 求正则表达式(a | b)*ab(a | b)的补码*
我的练习表上有一个问题,要找出Regex 求正则表达式(a | b)*ab(a | b)的补码*,regex,Regex,我的练习表上有一个问题,要找出r=(a | b)*ab(a | b)* 我已经想出了一个解决办法,但我不确定它是否正确。请帮我检查并更正错误。我假设a和b是唯一允许的符号 原始表达式与包含ab的任何字符串匹配。补码是不包含ab的任何字符串。换句话说,如果存在一个a,则下一个字符必须是另一个a或字符串的结尾。如果出现b,则必须在所有as之前 结果如下: b*a* 我认为您的表达式与此等价。给定的表达式至少一次重新声明了具有子字符串ab的语言 同样的补码是..不接受子串ab的语言 因此b*a*是正
r=(a | b)*ab(a | b)*
我已经想出了一个解决办法,但我不确定它是否正确。请帮我检查并更正错误。我假设
a
和b
是唯一允许的符号
原始表达式与包含ab
的任何字符串匹配。补码是不包含ab
的任何字符串。换句话说,如果存在一个a
,则下一个字符必须是另一个a
或字符串的结尾。如果出现b
,则必须在所有a
s之前
结果如下:
b*a*
我认为您的表达式与此等价。给定的表达式至少一次重新声明了具有子字符串ab的语言 同样的补码是..不接受子串ab的语言
因此b*a*是正确答案关于最后一行,我的意思是L(~r)=L(b*| baa),因此~r=b*| baa