Как вы можете извлечь все 6 буквенных слов в список?


1

Мне нужно иметь все 6 букв Latin words в списке.

Я также хотел бы иметь слова, которые следуют шаблону Xyzzyx в списке.

Я использовал маленький Python.

5

Регулярные выражения - ваш друг, мой друг! Это домашнее задание?

Вот пример того, что это близко к тому, что вы хотите:

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

Я оставлю его в качестве упражнения для читателя, чтобы создать латинский список слов и иметь дело с заглавной X во втором регулярном выражении , но общая идея должна быть очевидной.

  0

Я думал, что ты будешь его другом, а не регулярным! : P 22 фев. 092009-02-22 15:22:55

  0

Является ли Python подходящим для скрещивания латинских слов со списком? 22 фев. 092009-02-22 15:26:23

  0

Я уверен, что это так. Любой язык, на котором есть встроенный механизм регулярных выражений, должен быть в состоянии это сделать. 22 фев. 092009-02-22 15:28:13

  0

Спасибо! Мне удалось найти эти слова прямо в Терминале без Python с вашим кодом :) 22 фев. 092009-02-22 18:01:14

  0

Добро пожаловать! Всегда приятно, когда вы можете найти инструмент, наиболее подходящий для работы. :-) 22 фев. 092009-02-22 20:33:01


0

Обратите внимание, что если ваш список не содержит всех указаний существительных и спряжений глаголов, ваша программа не произведет ничего, как , все шестибуквенные слова на латыни.

Например, ваш список, вероятно, содержит только именительный паттерн существительных. Существительные первого склонения, чей именный падеж состоит из пяти букв (например, mensa), имеют шестибуквенный родительный падеж (например, mensae). Все декларации содержат случаи, когда длина существительного отличается от его именительного падежа.

То же самое относится и к глаголам, каждый из которых имеет (по крайней мере) четыре основные части, которые могут иметь разную длину и чьи сопряжения могут иметь различную длину. Таким образом, первое лицо единственного настоящего времени lego - это четыре буквы в длину, но его инфинитив legere - шесть; porto - пять в первом лице единственного числа, но шесть в лице второго лица, portas.

Я полагаю, что в принципе возможно построить двигатель, который программно уменьшает и связывает латинские слова, учитывая достаточно метаинформацию о каждом слове. Python на самом деле был бы неплохим языком для этого. Но это гораздо более сложная задача, чем просто писать регулярное выражение.