トップ 一覧 検索 ヘルプ 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
,{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コマンドを例に正規表現の利用例を示す。

*ファイル名が1文字のファイルを表示する。
 ls ?
*ファイル名の先頭の文字がaのファイルだけ表示する。
 ls a*
*拡張子がtxtのファイルのみ表示
 ls *.txt
*ファイル名がaからdのいずれかの文字で始まるもののみ表示する。
 ls [a..d]*