列出正则表达式匹配的所有模式
我想找一种方法,可以列出一个有限正则表达式(没有重复)的所有可能模式。有没有相关的资料可以参考?
2 个回答
0
一个基于Perl的Regexp::Genex
的Haskell程序可以在Github上找到,也可以在Hackage上找到。
根据作者的说法,这个程序的灵感来自于Regexp::Genex,但它“使用了一种随机游走的方法来处理字符类别,而不是列举所有可能性。”
3
虽然它可能不包括一些高级功能,并且有自己的一些限制,但Regexp::Genex看起来很接近你想要的东西。
还有这个PerlMonks的讨论帖,也很相关(它解释了为什么Regexp::Genex可能不适合你,以及一些你可以自己动手做的替代方案)。
另外,根据Jeffrey Friedl的《正则表达式大师》,你可以使用/g修饰符,结合(?{CODE})扩展和一个永远不会匹配的模式,像这样:
perl -E '$_ = 'Mastering Regular Expressions'; /(\p{L}*)(?{ say qq![$^N]! })(?!)/g;'