CodeZine(コードジン)

特集ページ一覧

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

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

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

ダウンロード SourceCode (6.6 KB)

目次

10. 括弧

 メタ文字は()です。括弧の使い方は3通りあるので、それぞれ解説します。

10-1. 括弧の使い方1(量指定子と組み合わせる)

 量指定子は、直前のパターンの繰り返しの量を指定するメタ文字でしたが、直前のパターンの作成を目的として、括弧を使うことができます。

 たとえば、正規表現(he)+はheheheheheにマッチし、正規表現he+はheeeeeにマッチします。下記がサンプルです。

検索で使う正規表現
^AB{2,3}$
検索対象と検索結果
検索対象と検索結果

 量指定子と括弧を組み合わせるサンプルです。

検索で使う正規表現
^(AB){2,3}$
検索対象と検索結果
検索対象と検索結果

10-2. 括弧の使い方2(選択と組み合わせる)

 選択は、指定した複数パターンのいずれか1つにマッチするメタ文字でしたが、選択は括弧を越えて作用しないので、括弧を使って選択の作用先を制限することができます。下記がサンプルです。

検索で使う正規表現
AB|CDXX
検索対象と検索結果(ABまたはCDXXにマッチ)
検索対象と検索結果

 括弧を使って選択の作用先を制限するサンプルです。

検索で使う正規表現
(AB|CD)XX
検索対象と検索結果(ABXXまたはCDXXにマッチ)
検索対象と検索結果

10-3. 括弧の使い方3(後方参照)

 括弧を使って、マッチした文字を記憶することができます。「キャプチャする」と言います。\1でキャプチャした文字列をマッチパターンとして指定できます。たとえば、文字列ababもしくは文字列cdcdにマッチする正規表現を(ab|cd)\1と表せます。\1で1番目の開き括弧でキャプチャした文字列を指定しているのです。

 キャプチャ対象が複数ある場合、開き括弧を左から数えた時の出現順序で指定します。すなわち

  • 1番目の開き括弧の中身は\1
  • 2番目の開き括弧の中身は\2
  • 3番目の開き括弧の中身は\3
  • 4番目の開き括弧の中身は\4
  • 5番目の開き括弧の中身は\5
  • 6番目の開き括弧の中身は\6
  • 7番目の開き括弧の中身は\7
  • 8番目の開き括弧の中身は\8
  • 9番目の開き括弧の中身は\9

となります。下記がサンプルです。

検索で使う正規表現
^([0-9])\1
検索対象と検索結果
検索対象と検索結果

最後に

 今回は、基礎的なメタ文字について解説しました。次回は、最小マッチ,肯定先読み,否定先読み,肯定戻り読み,否定戻り読み,キャプチャしない括弧について解説します。

参考資料

  • 詳説 正規表現 第3版』 Jeffrey E.F. Friedl 著、長尾高弘 訳、オライリー・ジャパン、2008年4月
    正規表現を作成する際の考え方が詳細に書かれている本です。本稿で使用している正規表現の用語は、この本と同じ用語を使っています。


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

バックナンバー

連載:正規表現入門

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5