2011-01-05 74 views
3

我正在寻找一种方法来列出有限正则表达式中的所有可能模式(没有重复项)。有没有可用的来源?列出正则表达式匹配的所有模式

+0

@Artha任何语言偏好? – marcog 2011-01-05 14:51:30

+0

你能举一个输入和期望输出的例子吗? – Gumbo 2011-01-05 15:07:27

+0

你的意思是来自正则表达式的所有可能的匹配吗? – 2011-01-05 19:01:36

回答

3

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

还有this thread of PerlMonks这是足够相关的(以及解释如何Regexp :: Genex可能不会为你做,和一些滚动自己的替代品)。

否则,按照杰弗里Friedl的Mastering Regular Expressions,可以使用/克改性剂,再加上延伸部和pattern that will never match,丙氨酸({CODE}):

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

Regexp :: Genex适合我。谢谢 – Artha 2011-01-06 11:13:33

+0

是否有任何完全开发的代码 - 正则表达式:: Genex是alpha,不支持^ $ \ G ... – Artha 2011-01-06 15:03:35

+0

不是我知道,不幸 - 也许是从掌握正则表达式的例子的组合(如果你真的,真的需要它,你甚至可以使用$&和朋友而不是捕获组..我不知道$^{MATCH}在内部(?{CODE})块内工作)加上String :: Random可以做到这一点吗? – Hugmeir 2011-01-06 15:09:22