正規表現:すべてのギリシャ文字には5つの固有の文字があります。つまり、各文字は一度だけ表示されます。

正規表現:すべてのギリシャ文字には5つの固有の文字があります。つまり、各文字は一度だけ表示されます。

私が解決できないもう1つの問題は、すべてのギリシャ文字に5つの固有の文字があることです(つまり、各文字は一度だけ表示されます)。

私の解決策:

egrep '(.)([^/1])([^/1/2])([^/1/2/3])([^/1/2/3/4])' greek.txt

だから私が言いたいのは次のとおりです。

  • 最初の文字と一致します。

  • 各連続文字は、前のパターンのいずれかにすることはできません。

しかし、結果は次のようになります。

alpha
gamma
delta
epsilon
theta
kappa
lambda
omicron
sigma
upsilon
omega

アルファ、ガンマ、その特性は一意ではありません。私が間違っていることについてのヒントやヒントがありますか?

答え1

  • grepを使用して、長さが!= 5のすべての行をフィルタリングします。
  • 2番目のgrepを使用して、繰り返される文字を含むすべての単語をフィルタリングします。

egrep '^.{5}$' greek.txt | egrep -v '^.*(.).*\1.*$'

コメントで最適化を指摘した@StephaneChazelasに感謝します。

grep -x '.\{5\}' | grep -v '\(.\).*\1'

答え2

私はあなたが正しい道を行っていると思いますが、スラッシュが間違った方向に行っているので、逆参照になっています。\1いいえを使用してください/1

関連情報