この表現を説明するのに役立つ人はいますか? grep '\([aeiou]\).\1'

この表現を説明するのに役立つ人はいますか? grep '\([aeiou]\).\1'

私は「コレクション(a、e、i、o、またはu)を含むすべての行と単一の文字、その後に同じコレクションを印刷する宿題表現を見つけました。したがって、「eve」または「Adam」は検索されますが、 . 「ベラ」。表現は大丈夫ですが、各部分がどのような役割を果たしているかをより詳しく理解できるように説明してくださる方を探しています。

答え1

まず、Googleで正規表現サイトを検索してみてください。彼らはあなたに多くの助けになります。たとえば、regexoneを試してみてください。

第二に、正規表現をテストまたは理解するのに役立つ場合は、regex101.comを参照してください。進行状況を段階的に説明するので、正規表現をテストすることもできます。

それでは式を見てみましょう。

[aeiou]

括弧内のすべての文字(ここではa、e、i、o、またはu)と一致します。

.

単一文字と一致

\1

最初のキャプチャグループと一致します。

\(anything\)

キャプチャグループです。

キャプチャグループは、後で使用するために記憶できる文字列の名前です。この場合、[aeiou]の文字をキャプチャすると、一致する文字を記憶することができます。この正規表現を書き換えると、次のようになります。

[aeiou].[aeiou]

最初のコレクションと2番目のコレクションが同じであることを確認することはできません。

したがって、正規表現は「aeiou」のすべての文字と一致し、単一文字と最初の文字が一致することを意味します。

答え2

まず、\(そして\)。これは、「このエスケープ括弧内のすべての項目はグループであり、後で式で参照することができます」を意味します。 "すべての文字、、、、または"[aeiou]を意味することがあります。単一点は、「すべての単一文字」を意味します。 「最初の試合セットで見つけたもの」を意味します。aeiou.\1

関連情報