通常在我们的工作中,我们在捕获或匹配操作中使用正则表达式。
但是,可以使用正则表达式(至少手动)来生成与正则表达式匹配的合法句子。当然,有些正则表达式可以匹配无限长的句子,例如表达式.+
。
我有一个问题可以通过使用正则表达式句子生成算法来解决。
在伪代码中,它会像这样运行:
re = generate("foo(bar|baz)?", max_match = 100); #Don't give me more than 100 results
assert re == ("foobar", "foobaz", "foo");
什么算法会为我执行此操作?