Question

Je dois avoir tous les 6 lettres latine mots dans une liste.

Je voudrais aussi avoir des mots qui suivent le modèle Xyzzyx dans une liste.

Je l'ai utilisé peu Python.

Était-ce utile?

La solution

Les expressions régulières sont vos amis, mon ami! Est-ce devoir?

Voici un exemple qui est Fermer à ce que vous voulez:

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

Je vais le laisser comme un exercice pour le lecteur pour créer une liste de mots latin et de traiter avec le X majuscule dans la seconde regex, mais l'idée générale devrait être évident.

Autres conseils

Notez que si votre liste contient tous les de verbes et les déclinaisons des substantifs les conjugaisons, votre programme ne produira pas quelque chose comme tous les mots de six lettres en latin.

Par exemple, votre liste contient probablement le cas Nominatif des noms. les noms dont la première déclinaison cas est cinq lettres Nominatif longue (par exemple Mensa ) ont un génitif six lettres (par exemple mensae ). Tous les cas où contiennent déclinaisons la longueur du nom est différent de son cas Nominatif.

Le même est encore plus vrai pour les verbes, qui ont chacun (au moins) quatre pièces principales, qui peuvent être de longueur variable, et dont les conjugaisons peuvent être de longueurs variables aussi. Ainsi, la première personne du singulier du présent de lego est de quatre lettres, mais son infinitif legere est six; Porto est cinq dans la première personne du singulier, mais six au singulier la deuxième personne, Portas .

Je suppose qu'il est en principe possible de construire un moteur qui diminue et conjugués de programmation mots latins donnés assez sur chaque mot métainformations. Python serait en fait une assez bonne langue pour le faire. Mais c'est une tâche beaucoup plus que d'écrire juste une expression régulière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top