1

リストに6文字のラテン語をすべて含める必要があります。

また、Xyzzyxのパターンに従う単語をリストに入れたいと思います。

私は少しPythonを使用しました。

4

2 に答える 2

5

正規表現はあなたの友達、私の友達です!これは宿題ですか?

これがあなたが望むものに近い例です:

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

読者がラテン語のリストを作成し、2番目の正規表現で大文字のXを処理するための演習として残しておきますが、一般的な考え方は明らかです。

于 2009-02-22T14:10:50.557 に答える
0

リストに名詞の語用変化と動詞の活用がすべて含まれていない限り、プログラムはラテン語の 6 文字の単語すべてのようなものを生成しないことに注意してください。

たとえば、リストには名詞の主格のみが含まれている可能性があります。主格が 5 文字の長さの第一変化形名詞 (例: mensa ) には、6 文字の属格があります (例: mensae )。すべての語形変化には、名詞の長さが主格と異なる場合が含まれています。

動詞についても同じことが言えます。それぞれの動詞には (少なくとも) 4 つの主要部分があり、長さを変えることができ、活用も長さを変えることができます。したがって、 legoの一人称単数現在時制は 4 文字の長さですが、その不定詞legereは 6 文字です。portoは一人称単数では 5 ですが、二人称単数portasでは 6です。

各単語について十分なメタ情報があれば、ラテン語の単語をプログラムで拒否して活用するエンジンを構築することは、原理的には可能だと思います。実際、Python はそれを行うのに非常に適した言語です。しかし、それは正規表現を記述するよりもはるかに大きなタスクです。

于 2009-02-22T20:20:48.547 に答える