即,我得到一个单词列表,我想从匹配至少所有单词(但可能更多)的单词中构造一个简单的正则表达式。
我想有一个算法。即该算法的输入是单词列表,输出是正则表达式。显然,会有一些限制。就像正则表达式应该匹配无限数量的单词时总是匹配更多的单词,而我只给它有限数量的单词。或者我需要一些更紧凑的输入表示。或者我也在考虑给我一些正则表达式作为输入和一个额外的单词列表,我想得到一个正则表达式,它将所有它们匹配在一起(也许更多)。无论如何,它应该尝试构造一个尽可能简单的正则表达式。
有哪些技术可以做到这一点?
我被误解了。我知道正则表达式背后的一般原则。我知道它是什么。在大多数情况下,我可以很容易地手动为某种语言提供正则表达式。但我正在寻找能够做到这一点的算法。
再次表述有点不同:
令 L 为常规语言。令 M_n 是具有 n 个元素的 L 的有限子集。令 M_n 是 M_(n+1) 的子集。
我想要一个算法 LRE,它可以获取一组有限的单词并输出一个正则表达式。我想拥有财产:
lim_n->无穷大 | 差异(LRE(M_n),L)| = 0