Hallo Perl-Spezialisten,
es gibt ja die Möglichkeit, sich Teilausdrücke zu merken.
Einfaches Beispiel:
/([^aeiou])([aeiou])\1\2/
Würde in einer Wörterliste, z.B. mama,papa,soso,... finden.
Wie müsste die Regex aussehen, wenn ich Wörter suche, die jeden Vokal (a,e,i,o,u) genau einmal in beliebiger Reihenfolge enthalten?
Vereinfacht entspräche dabei der Ausdruck [^aeiou] einem Konsonanten und [aeiou] einem Vokal.
Ich dachte, es müsste etwas geben wie:
[^aeiou]* # 0 oder mehr Konsonanten
([aeiou]) # 1. Vokal
[^aeiou]* # 0 oder mehr Konsonanten
([^\1]) # 2. Vokal, aber nicht nochmals der 1. Vokal
[^aeiou]* # 0 oder mehr Konsonanten
([^\1\2]) # 3. Vokal, aber nicht nochmals der 1.,2. Vokal
[^aeiou]* # 0 oder mehr Konsonanten
([^\1\2\3]) # 4. Vokal, aber nicht nochmals der 1.,2.,3, Vokal
[^aeiou]* # 0 oder mehr Konsonanten
([^\1\2\3\4]) # 5. Vokal, aber nicht nochmals der 1.,2.,3.,4. Vokal
[^aeiou]* # 0 oder mehr Konsonanten
Aber das [^\1] usw. funktioniert so offenbar nicht...
Hat jemand eine Idee?
Last edited: 2016-04-03 22:41:15 +0200 (CEST)