Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

正規表現の入門(1)
基礎的なメタ文字

正規表現の基礎的なメタ文字の使い方

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/12/11 14:00

ダウンロード SourceCode (6.6 KB)

 正規表現を初めて使う方を対象に、具体的な検索と置換のサンプルを示しつつ、正規表現を解説していきます。第1回はリテラルとメタ文字について説明します。

目次

はじめに

 正規表現を初めて使う方を対象に、具体的な検索と置換のサンプルを示しつつ、正規表現を解説します。

 正規表現は、実行環境によって多少文法が異なりますが、本連載ではEmEditorの正規表現を使って解説していきます。EmEditorの正規表現の文法は、『EmEditor 使い方: 正規表現構文』を参照してください(Perl準拠です)。

 第1回となる本稿では、基礎的なメタ文字について解説します。『使うほどに良さが分かる正規表現』(@IT)や『基礎解説 スマートな文字列処理のための正規表現入門』(@IT)を必要に応じて参照すると学習効率が高いと思います。

対象読者

  • 正規表現をはじめて使う方
  • 詳説 正規表現』を、まだ読んだことがない方

必要な環境

 EmEditor Professional Version 6.00.4で動作確認しました。その他、プログラム言語やSQL、テキストエディタなどでも応用できます。

EmEditorでの正規表現を使う検索の仕方

  • メニューの[検索]-[検索]を選択します([Ctrl]+[F]でも可)。
  • [検索する文字列]に、検索する正規表現を入力します。
  • [正規表現を使用する]をチェックしておきます。
  • [下を検索]を押します。黄緑色が検索にヒットした部分です。
EmEditorでの正規表現を使う検索の仕方
EmEditorでの正規表現を使う検索の仕方

EmEditorでの正規表現を使う置換の仕方

  • メニューの[検索]-[置換]を選択します([Ctrl]+[H]でも可)。
  • [検索する文字列]に、検索する正規表現を入力します。
  • [置換後の文字列]に、置換後の文字列を入力します。
  • [正規表現を使用する]をチェックしておきます。
  • [すべて置換]を押します。
EmEditorでの正規表現を使う置換の仕方(置換前)
EmEditorでの正規表現を使う置換の仕方(置換前)
EmEditorでの正規表現を使う置換の仕方(置換後)
EmEditorでの正規表現を使う置換の仕方(置換後)

1. 正規表現とメタ文字

 正規表現は、メタ文字とリテラルの2つの組み合わせで構成されます。

 リテラルは、その文字自体にマッチします。リテラルのみで構成された正規表現で検索してみましょう(黄緑色が検索にヒットした部分です)。

検索で使う正規表現
AB
検索対象と検索結果
検索対象と検索結果

 メタ文字は、それぞれ特殊な意味を持ちます。メタ文字を使った正規表現で検索してみましょう(ここでは「^」がメタ文字)。

検索で使う正規表現
^AB
検索対象と検索結果
検索対象と検索結果

 先ほどと検索結果が変わりましたね。それでは以降、メタ文字について掘り下げていきます。

2. 行頭

 行の先頭(行頭)にマッチします。メタ文字は^です。たとえば^Aは、行頭にある文字Aにマッチします。

検索で使う正規表現
^A
検索対象と検索結果
検索対象と検索結果

 もう1つのサンプルとして、置換で使用して行頭に指定文字列を挿入する例です。

置換で使う正規表現
^
を
//
に置換
置換対象
int work;
work = 5;
work += 10;
置換結果
//int work;
//work = 5;
//work += 10;

3. 行末

 行の末尾(行末)にマッチします。メタ文字は$です。下記がサンプルです。A$は、行末にある文字Aにマッチします。

検索で使う正規表現
A$
検索対象と検索結果
検索対象と検索結果

 もう1つサンプルです。^A$は、正規表現を直訳して、行頭があって文字Aがあって行末があればマッチすると考えるといいでしょう。つまり、「A」のみが入力されている行にマッチします。

検索で使う正規表現
^A$
検索対象と検索結果
検索対象と検索結果

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:正規表現入門
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5