正規表現(regex)は、パターンに基づいたテキスト選択のための強力なツールです。それを理解することは、Linux でのテキスト操作を習得するための基本です。Linux を学ぶためのアプリは数多くありますが、regular expression linuxのようなコアコンセプトに飛び込むことが、Linux 上級者への最も速い道です。これらは、*のようなワイルドカードと似た特殊な表記法を使用します。
ここでは、ほぼすべてのプログラミング言語で共通している、最も一般的な regex 演算子を探ります。例として、次のテキストを使用します。
sally sells seashells
by the seashore
行の先頭へのアンカリング
キャレット^記号は行の先頭に一致します。これにより、パターンが先頭にのみ出現することが保証されます。
^by
このパターンは、「by the seashore」という行には一致しますが、「sally sells seashells」には一致しません。
行の末尾へのアンカリング
ドル記号$は行の末尾に一致します。これは^アンカーの対になるものです。
seashore$
このパターンは、「by the seashore」が行が「seashore」で終わるため一致します。
任意の 1 文字の一致
ピリオド.は任意の 1 文字に一致するワイルドカードです。
b.
私たちの例では、これは「by」に一致します。
文字セットのためのブラケットの使用
ブラケット[]を使用すると、一致させる文字のセットを指定できます。これにより、.ワイルドカードよりも詳細な制御が可能になります。
s[ae]lls
これは「sells」に一致し、「salls」にも一致します。
また、ブラケットを使用して、一致させないものを指定することもできます。キャレット^がブラケット内の最初の文字である場合、セットを否定し、リストされている文字以外の任意の文字に一致します。
s[^e]lls
これは「salls」には一致しますが、「sells」には一致しません。
最後に、ブラケットは範囲をサポートしており、多数の文字セットを効率的に定義できます。
d[a-c]g
このパターンは、「dag」、「dbg」、および「dcg」に一致します。範囲は大文字と小文字を区別することに注意してください。例えば、[a-c]はA、B、またはCには一致しません。
これらの演算子を学ぶことは、Linux コマンドラインの効率を学ぶための最良の方法の 1 つです。