トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

正規表現

正規表現

文字列のパターンを表現する表記法で、エディタの文字列検索・置換、UNIXコマンドの引数でも利用できる。

正規表現で使用する記号、文字(メタ文字という)の組み合わせを表に示す。

記号 意味 例の意味
. 任意の一文字
直前の文字の0または1回の繰り返し ab? aまたはab
直前の文字の0回以上の繰り返し ax* a、ax、axx、・・・
直前の文字の1回以上の繰り返し ax+ ax、axx、・・・
{n} 直前のパターンのn回の繰り返し a{4} aaaa
{n、} 直前のパターンのn回の以上繰り返し a{2、} aa、aaa、aaaa、・・・
{n、m} 直前のパターンのnからm回の繰り返し a{1、4} a、aa、aaa、aaaa
[…] 範囲指定 [0-9] 0〜9のいずれか
[^文字] 文字を含めない [^ab] aまたb以外の一文字
行頭 ^Y Yで始まる行
$ 行末 X$ 行末がX
\ 文字をエスケープする \\ \そのもの

メタ文字をエスケープする記号\は日本だけのもので、\(バックスラッシュ)が英語の場合使われる。

メタ文字を複数組み合わせた場合の例を示す。

正規表現 意味
[a-zA-Z] 大文字小文字を区別せず、アルファベットの任意の一文字
[a-z]+ アルファベット小文字の一文字以上のすべての組み合わせ
[1-9][0-9]* 0より大きい整数

 グループ化

正規表現を使った検索置換で検索文字列を置換する文字列の一部に利用したいときは検索文字列パターンをグループ化します。グループを作るときは(と)あるいは\(と\)でパターンを囲み、グループ化したパターンを利用するときは\1、\2というようにグループ化した順に番号付けした表記を使います。

\([a-z]*\)\([0-9]*\)

 利用例

lsコマンドを例に正規表現の利用例を示す。

ls ?
ls a*
ls *.txt
  • ファイル名がaからdのいずれかの文字で始まるもののみ表示する。
ls [a..d]*