这是计算理论的一个简单问题。 我不知道也不希望用python编码的解释,而是表达的理论答案。 我已尽力找出了答案,并提出了以下代码:
(ab+ba+bb)*. aa.(ab+ba+bb)*.aa.(ab+ba+bb)* + b*.aa.b*.aa.b*
对吗?我会忘记其他情况吗?
答案 0 :(得分:3)
您的正则表达式太复杂且不够灵活(仅适用于a和b的字符串)。更好的解决方案使用否定的前瞻性断言:
^(?:(?!aa).)*aa(?:(?!aa).)*aa(?:(?!aa).)*$
这会在不包含aa
的字符串开始处查找子字符串的任何长度,然后是第一个aa
,以此类推。