2011-01-05 70 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