正则表达式来形成恰好包含 4 个 a 或 5 个 b 的单词
Regular expression to form words with exactly 4 a's or 5 b's
在形式语言理论(使用 Kleene Star)中,如果我想创建一个正则表达式来定义包含集合 {a ,b} 中所有单词的语言,恰好有 4 个 a 或 5 个 b。
(注意我的书使用 + 表示 OR,* 表示 0 或多个)
到目前为止我有:
[a(b*)aaa + aa(b*)aa + aaa(b*)a + aaaa(b*) + abababab + babababa + (b*)aaaa]
+
[b(a*)bbbb + bb(a*)bbb + bbb(a*)bb + bbbb(a*)b + bbbbb(a*) + (a*)bbbbb + bababababa + ababababab]
有没有更短的方法来做到这一点?似乎理论不允许对字母使用 min 和 max。
您的表达方式不适合所有可能性(例如 babababababbbb
)。搜索到的表达式应该更简单:
[ b*ab*ab*ab*ab* + a*ba*ba*ba*ba*ba* ]
在形式语言理论(使用 Kleene Star)中,如果我想创建一个正则表达式来定义包含集合 {a ,b} 中所有单词的语言,恰好有 4 个 a 或 5 个 b。
(注意我的书使用 + 表示 OR,* 表示 0 或多个)
到目前为止我有:
[a(b*)aaa + aa(b*)aa + aaa(b*)a + aaaa(b*) + abababab + babababa + (b*)aaaa]
+
[b(a*)bbbb + bb(a*)bbb + bbb(a*)bb + bbbb(a*)b + bbbbb(a*) + (a*)bbbbb + bababababa + ababababab]
有没有更短的方法来做到这一点?似乎理论不允许对字母使用 min 和 max。
您的表达方式不适合所有可能性(例如 babababababbbb
)。搜索到的表达式应该更简单:
[ b*ab*ab*ab*ab* + a*ba*ba*ba*ba*ba* ]