列出正则表达式匹配的所有模式

问题描述 投票:0回答:2

我正在寻找一种方法来列出有限正则表达式中的所有可能模式(不重复)。有资源吗

python regex perl
2个回答
3
投票

虽然它不会涵盖一些高级功能,并且有自己的其他注意事项,但 Regexp::Genex 似乎很接近您正在寻找的内容。

还有 PerlMonks 的这个线程,它足够相关(以及解释 Regexp::Genex 可能不适合你,以及一些自己动手的替代方案)。

否则,根据 Jeffrey Friedl 的掌握正则表达式,您可以使用 /g 修饰符,再加上 (?{CODE}) 扩展名和永远不会匹配的模式,ala:

perl -E '$_ = 'Mastering Regular Expressions'; /(\p{L}*)(?{ say qq![$^N]! })(?!)/g;'

0
投票

基于 Perl 的 Haskell 程序

Regexp::Genex
可以在 Githubon Hackage 找到。

根据作者的说法,它受到 Regexp::Genex 的启发,但是“对字符类使用随机游走方法,而不是枚举所有可能性。”

© www.soinside.com 2019 - 2024. All rights reserved.