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