<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/reference.pcre.pattern.syntax.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'regexp.reference.meta.php',
    1 => 'メタ文字',
    2 => 'メタ文字',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'PCRE 正規表現構文',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.delimiters.php',
    1 => 'デリミタ',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.escape.php',
    1 => 'エスケープシーケンス',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/pcre/pattern.syntax.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="regexp.reference.meta" class="section">
     <h2 class="title">メタ文字</h2>
     <p class="para">
      正規表現の強力さは、パターン中に選択肢や繰り返しを記述できることに
      あります。選択肢や繰り返しは、<em>メタ文字</em>
       (meta-character) を使ってパターン中に記述します。メタ文字は、
       その文字自体を表わさず、代わって特別な解釈が行われます。
     </p>
     <p class="para">
      メタ文字には、2 種類あります。ひとつは、角カッコ内を除き、
      パターン中のどこででも使用できる文字です。もうひとつは、
      角カッコで括られた中でだけ使用できる文字です。
     </p>
     <p class="para">
      前者の角カッコ外で使用できるメタ文字には、次のものがあります。

   <table class="doctable table">
     <caption><strong>角カッコ外で使用できるメタ文字</strong></caption>
    
     <thead>
      <tr>
       <th>メタ文字</th><th>説明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>\</td><td>多目的に使う一般的なエスケープ文字 </td>
      </tr>

      <tr>
       <td>^</td><td>検索対象（複数行モードでは行）の始まりを言明</td>
      </tr>

      <tr>
       <td>$</td><td>検索対象の終わりあるいは終端の改行文字の前（複数行モードでは行の終わり）を言明</td>
      </tr>

      <tr>
       <td>.</td><td>改行を除くすべての文字にマッチ（デフォルト時）</td>
      </tr>

      <tr>
       <td>[</td><td>文字クラス定義の開始</td>
      </tr>

      <tr>
       <td>]</td><td>文字クラス定義の終了</td>
      </tr>

      <tr>
       <td>|</td><td>選択枝の開始</td>
      </tr>

      <tr>
       <td>(</td><td>サブパターンの開始</td>
      </tr>

      <tr>
       <td>)</td><td>サブパターンの終了</td>
      </tr>

      <tr>
       <td>?</td><td>( の意味を拡張／0 または 1 回マッチ／なるべく少ない回数だけマッチ
           (<a href="regexp.reference.repetition.php" class="link">繰り返し</a> を参照)</td>
      </tr>

      <tr>
       <td>*</td><td>0 回以上の繰り返し</td>
      </tr>

      <tr>
       <td>+</td><td>1 回以上の繰り返し</td>
      </tr>

      <tr>
       <td>{</td><td>最小／最大を指定する量指定子の開始</td>
      </tr>

      <tr>
       <td>}</td><td>最小／最大を指定する量指定子の終了</td>
      </tr>

     </tbody>
    
   </table>


     パターン中の角カッコで括まれた部分を「<a href="regexp.reference.character-classes.php" class="link">文字クラス</a>」と言います。
     文字クラスで使えるメタ文字は、次のものだけです。

   <table class="doctable table">
     <caption><strong>角カッコ内のメタ文字 (<em>文字クラス</em>)</strong></caption>
    
     <thead>
      <tr>
       <th>Meta-character</th><th>Description</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>\</td><td>一般的なエスケープ文字</td>
      </tr>

      <tr>
       <td>^</td><td>クラスの否定。ただし、文字クラスの最初の文字に用いた場合のみ</td>
      </tr>

      <tr>
       <td>-</td><td>文字の範囲の指定</td>
      </tr>

     </tbody>
    
   </table>


      以降のセクションで、各メタ文字の使用法の説明を行います。
     </p>
    </div><?php manual_footer($setup); ?>