<?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.alternation.php',
    1 => '選択肢',
    2 => '選択肢',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'PCRE 正規表現構文',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.character-classes.php',
    1 => '文字クラス',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.internal-options.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.alternation" class="section">
  <h2 class="title">選択肢</h2>
     <p class="para">
      縦線は、パターンに選択肢 (alternative) を列挙するために使われます。
      例えば、パターン <code class="literal">gilbert|sullivan</code>
      は、&quot;gilbert&quot; または &quot;sullivan&quot; にマッチします。
      選択肢の数に制限はありません。また、空の選択肢も可能です 
      (空の文字列にマッチします)。マッチの手順としては、
      各選択肢が左から右に順にマッチするかどうか試行され、
      最初にマッチに成功した選択肢が使われます。選択肢を（後述する）
      サブパターン内に記述した場合、マッチの「成功」とは、
      サブパターン内の選択肢も、メインのパターンの他の部分もマッチした
      ということを意味します。
     </p>
     <p class="para">
      どの選択肢がマッチしたかを、
      <code class="literal">(*MARK:NAME)</code> や <code class="literal">(*:NAME)</code>
      の形式で記録することができます。
      <code class="literal">(*MARK)</code> のような動詞の形式は、
      いくつでも記述でき、名前はユニークである必要がありません。
      マッチが成功すると、最後に現れた
      <code class="literal">(*MARK:NAME)</code> の名前が
      あたかも <code class="literal">MARK</code>
      と呼ばれるキャプチャグループが存在するかのように、
      マッチした情報の一部として置かれます。
      よって、この情報は <span class="function"><a href="function.preg-match.php" class="function">preg_match()</a></span> の
      <code class="parameter">matches</code> から読み取ることができ、
      <span class="function"><a href="function.preg-replace-callback.php" class="function">preg_replace_callback()</a></span> の
      <code class="parameter">callback</code> に渡すことなどができます。
     </p>
    </div><?php manual_footer($setup); ?>