Frage

Ich brauche alle 6 Buchstaben haben Latein Worte in einer Liste.

Ich mag auch Worte haben, die das Muster Xyzzyx in einer Liste folgen.

Ich habe wenig Python verwendet.

War es hilfreich?

Lösung

Reguläre Ausdrücke sind dein Freund, mein Freund! Ist das Hausaufgaben?

Hier ist ein Beispiel, das ist schließen zu dem, was Sie wollen:

egrep "^\w{6}$" /usr/share/dict/words | egrep "(.)(.)(.)\3\2\1"

Ich werde es als eine Übung überlassen dem Leser eine lateinische Wortliste und befassen sich mit der Groß X in der zweiten regex zu schaffen, aber die allgemeine Idee sollte klar sein.

Andere Tipps

Beachten Sie, dass, wenn Ihre Liste alle Substantive Deklinationen und Verben Konjugationen enthält, wird Ihr Programm nichts produzieren wie alle die Sechs-Buchstaben-Wörter in lateinischer Sprache.

Zum Beispiel Ihre Liste enthält wahrscheinlich nur den Nominativ der Substantive. First-Deklination Substantive, dessen Nominativ ist fünf Buchstaben lang (z mensa ) hat einen sechsstelligen Genitiv (z mensae ). Alle der Deklinationen enthalten Fällen, in denen die Länge des Nomen von seinem Nominativ unterscheidet.

Das Gleiche ist wahr noch von Verben, von denen jede (mindestens) vier Hauptteile, die von unterschiedlicher Länge sein können, und deren Konjugationen können auch von unterschiedlicher Länge sein. So ist die erste Person Singular Präsens von lego ist vier Buchstaben lang, aber seine unendlichen legere ist sechs; Porto ist fünf in der ersten Person Singular, sondern sechs in der die zweite Person Singular, portas .

Ich nehme es prinzipiell möglich ist, einen Motor zu bauen, die programmatisch ablehnt und Konjugate lateinische Worte genug Metainformationen über jedes Wort gegeben. Python wäre eine ziemlich gute Sprache tatsächlich sein, das zu tun. Aber das ist eine viel größere Aufgabe als nur einen regulären Ausdruck zu schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top