Я шукаю спосіб перелічити всі можливі шаблони з кінцевого регулярного виразу (без дублікатів). Чи є доступне джерело?
Відповіді:
3 для відповіді № 1Незважаючи на те, що він не охоплює деякі розширені функції та має свою частку інших застережень, Regexp :: Genex схоже на те, що ви шукаєте.
Там також це потік PerlMonks що є достатньо релевантним (а також пояснює, як Regexp :: Genex може не зробити для вас, і деякі альтернативні варіанти).
В іншому випадку, за Джефрі Фрідл Освоєння регулярних виразів, ви можете використовувати модифікатор / g, пов'язаний з розширенням (? {CODE}) і a шаблон, який ніколи не збігатиметься, ala:
perl -E "$_ = "Mastering Regular Expressions"; /(p{L}*)(?{ say qq![$^N]! })(?!)/g;"
0 для відповіді № 2
Програма Haskell на основі Perl Regexp::Genex
можна знайти на Github і на Hackage.
На думку автора, він був натхненний Regexp :: Genex, але "використовує підхід для випадкових прогулянок для класів символів, замість перерахування всіх можливостей".