オリジナル問題 LinuCレベル1試験 問題 問19
GNUとUnixのコマンド/正規表現を使用したテキストファイルの検索拡張正規表現(ERE。grep -EやegrepでBREとの違いとして有効になる記法)に関する説明として適切なものはどれか。
出典:オリジナル問題 LinuCレベル1試験 問題 問19
- A拡張正規表現はBREより使えるメタ文字が少なく、機能の面では下位にあたる
- Bメタ文字は一切使えず、リテラル文字列の検索だけができる記法である
- C利用するにはPerlのインストールが必須で、grep単体では使えない
- D+や?、|がバックスラッシュ無しでそのまま特殊な意味を持つ
正解:D
解説
基本正規表現(BRE)では、+や?、|といった記法を特殊な意味で使うには\+のようにバックスラッシュでエスケープする必要がありますが、拡張正規表現(ERE)ではこれらがエスケープ無しでそのまま「1回以上の繰り返し」「0回または1回」「選択(OR)」として機能します。grepコマンドで-Eオプションを付ける(またはegrepコマンドを使う)とEREとして解釈されます。
選択肢ごとの解説
- A誤り。EREはBREに記法を追加したもので、機能が少ないわけではありません。
- B誤り。EREでもメタ文字は使えます。
- C誤り。grep -Eやegrepで利用でき、Perlは不要です。
- D正しい。EREでは+・?・|等をエスケープせずに特殊文字として使えます。