Używając wyrażeń regularnych, aby znaleźć słowo z pięcioma literami abcde, każda litera pojawia się dokładnie raz, w dowolnej kolejności, bez przerw między nimi

Na przykład słowospadek działa z powodudebac, aledno morskie nie działa, ponieważ: 1. nie ma c w 5-znakowej sekwencji, którą można utworzyć, i 2. litera e pojawia się dwukrotnie. Jako inny przykładsprzężenie zwrotne działa z powoduedbac. I pamiętaj, że rozwiązanie musi być wykonane tylko przy użyciu wyrażeń regularnych.

Strategia, którą próbowałem zaimplementować, była następująca: dopasuj pierwszą literę, jeśli jest wewnątrz [a-e], i zapamiętaj ją. Następnie znajdź następną literę w [a-e], ale nie w pierwszej. I tak dalej. Nie byłem pewien, jaka była składnia (lub nawet jeśli istniała jakaś składnia), więc mój kod nie działał:

open(DICT, "dictionary.txt");
@words = <DICT>;

foreach my $word(@words){

if ($word =~ /([a-e])([a-e^\1])([a-e^\1^\2])([a-e^\1^\2^\3])([a-e^\1^\2^\3^\4])/
){
    print $word;
}
}

Myślałem też o użyciu (? = Regex) i G, ale nie byłem pewien, jak to się ułoży.

questionAnswers(3)

yourAnswerToTheQuestion