正規表現 (RE: Regulear Expression) 正規表現 (RE: Regulear Expression) とは 文字列のパターン(集合)を簡単に表現したもの (cf. ワイルドカード ) 一つの文字列(正規表現)で、複数の文字列(文字列の集合)が表現できる 例: file-*.txt => "file-" で始まり、".txt" で終わる文字列 (file-1.txt, file-abc.txt, file-file-file.txt.txt, .. ) 正規表現の基本 普通の文字一文字 (A) : その文字そのものを表す ( { "A" } ) メタ文字 (特別な意味のある文字 「. ^ $ [ ] * + ? | ( )」) は、\ でエスケープ 「\[」 : "[" 自身 / 「\\」 : "\" 自身 文字の範囲指定 ([A-Z]) : 文字の集合を表す ( { "A", "B", .., "Z" } ) . は、「任意の文字」の意味になる 先頭の ^ は否定になる ( [^A-Z] は [A-Z] 以外 ) 正規表現の並び (AB, [A-C][1-3]) : 集合の直積になる ( { "AB" }, { "A1", "A2", .., "C3" } 正規表現の選択 ( AB|[1-3] ) : 和集合になる ( { "AB", "1", "2", "3" } ) 正規表現の繰返し ( A* ) : 0 回以上の繰返し ( { "", "A", "AA", .. } ) bash の正規表現 正規表現には、方言 ( コマンド毎に異る ) がある : 機能は同じだが表現が違う 例 : bash の 「*」/「.」は、grep の 「.*」/「\.」と同じ意味 正規表現を憶えるなら、まず grep を憶える ( sed も同じ ) bash の正規表現は、「ファイル名」を簡単に指定できるようになっている