创建一个输入正则表达式的程序,并输出满足该正则表达式的字符串

bra*_*rad 13 regex computer-science

我认为标题准确地总结了我的问题,但只是详细说明一下.

我不想使用正则表达式来验证现有字符串的属性,而是使用正则表达式来生成具有某些属性的字符串.

注意:该函数不需要生成满足正则表达式的每个字符串(因为对于许多正则表达式而言,这将是无限数量的字符串).只需抽取许多有效字符串即可.

这样的事情有多可行?如果解决方案太复杂/太大,我对一般性讨论/大纲感到满意.此外,我对任何现有的程序或库(.NET)感兴趣.

Fal*_*ina 10

那么正则表达式可以转换为DFA,可以将其视为图形.要根据此DFA图生成字符串,您只需找到从开始状态到结束状态的路径.您只需要考虑如何处理循环(也许至少遍历每个循环一次以获得一次采样?n次?),但我不明白为什么它不起作用.