私は最近、この質問に対する私の回答へのコメントの正規表現を構成するものについて、Ghotiとの友好的な議論に入りました。私は以下が正規表現であると主張しました:
`[Rr]eading[Tt]est[Dd]ata`
Ghotiは同意せず、代わりにファイルグロブであると主張した。ウィキペディアのglobページは、次のように述べています(私の強調):
Globsには、式の前の部分を複数回繰り返すことができるKleeneスターの構文は含まれていません。したがって、これらは正規表現とは見なされません。これは、特定の有限アルファベットよりも多くの正規言語を記述することができます。
ただし、この主張に対する引用はなく、これは特定のWikipedia編集者の意見にすぎないことを示しています。
The Single UNIX®Specification、Version 2では、基本正規表現(BRE)は単一の文字でさえ可能であると述べています:
通常の文字とは、それ自体に一致するBREです。サポートされている文字セットの任意の文字。ただし、BRE特殊文字にリストされているBRE特殊文字は除きます。
それで、* nixの世界での正規表現の定義は何ですか?その定義はファイルグロブを除外しますか?
*
、BREとグロブでは2つの異なる意味があります。注:グロブという用語はPOSIX仕様のどこでも使用されているとは思いません。代わりにパターンマッチングと呼ばれ、シェル言語の章で説明されています。
grep
、sed
とawk
。Perlと同様に、Vimは独自の種類を使用します。