正規表現の基礎的なメタ文字の使い方
山岸賢治 [著] 2008/12/11 14:00

SourceCode 6.76 KB
1 2 3 4 →

はじめに

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

 正規表現は、実行環境によって多少文法が異なりますが、本連載では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$
検索対象と検索結果
検索対象と検索結果

1 2 3 4
→
INDEX
正規表現の入門(1) 基礎的なメタ文字
Page1
はじめに
対象読者
必要な環境
1. 正規表現とメタ文字
2. 行頭
3. 行末
4. 任意の1文字
5. 文字クラス
6. 否定文字クラス
7. 選択
8. 量指定子
9. 量指定子(範囲指定繰り返し制御)
10. 括弧
最後に
参考資料
プロフィール
山岸賢治 ヤマギシケンジ

Oracle ACEの1人。
OracleSQLパズルの運営者。
ORACLE MASTER Silver Oracle Database 10g
(研修受講で)ORACLE MASTER Gold Oracle Database 10g
ソフトウェア開発技術者 (情報処理技術者試験)
第二種情報処理技術者 (情報処理技術者試験)
 


注目の求人情報
システムエンジニア/イントラネット開発
各種案件におけるDB2、Oracleなどのデータベース設計、構築、チューニング等を担当していただきます。 ...
システムエンジニア/金融に特化したITコンサルファーム
データベースやインフラ、Javaなど、ある特定の分野に非常に特化する業務を担当。...
生産管理・工程設計/株式会社デンソー
・システム設計業務 ・システム評価試験業務 ・納入先等、関連部署との仕様調整業務...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: