<?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.delimiters.php',
    1 => 'デリミタ',
    2 => 'デリミタ',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'PCRE 正規表現構文',
  ),
  'prev' => 
  array (
    0 => 'regexp.introduction.php',
    1 => 'はじめに',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.meta.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.delimiters" class="section">
     <h2 class="title">デリミタ</h2>
     <p class="para">
      PCRE 関数を使うときには、パターンを
      <em>delimiters</em> で囲まなければなりません。
      英数字、バックスラッシュ、空白文字以外の任意の文字をデリミタとして使うことができます。
      有効なデリミタの前に空白文字を付けても、黙って無視されます。
     </p>
     <p class="para">
      デリミタとしてよく使われる文字は、スラッシュ (<code class="literal">/</code>)、
      ハッシュ記号 (<code class="literal">#</code>) およびチルダ (<code class="literal">~</code>) です。
      次に示す例は、どれも正しいデリミタです。
      <div class="informalexample">
       <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%
</pre></div>
       </div>

      </div>
     </p>
  <p class="para">
   角括弧形式のデリミタを使うこともできます。
   これは、開き角括弧と閉じ角括弧がそれぞれ開始デリミタ、終了デリミタを表す形式です。
   <code class="literal">()</code>、
   <code class="literal">{}</code>、<code class="literal">[]</code> そして <code class="literal">&lt;&gt;</code>
   はどれも、角括弧形式のデリミタとして有効です。
   <div class="informalexample">
    <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
&lt;this [is] a (pattern)&gt;
</pre></div>
    </div>

   </div>
   角括弧形式のデリミタを使う場合は、パターン内でメタ文字を使うときのエスケープは不要です。
   しかし、他のデリミタと同様、(メタ文字としてではなく) リテラルとして扱う場合は、
   エスケープする必要があります。
  </p>
     <p class="para">
      パターンの中でデリミタ文字をマッチさせたい場合は、バックスラッシュでエスケープしなければなりません。
      パターン内でデリミタが頻繁にあらわれる場合は、
      デリミタを別の文字に変更したほうが読みやすくなります。
      <div class="informalexample">
       <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
/http:\/\//
#http://#
</pre></div>
       </div>

      </div>
      <span class="function"><a href="function.preg-quote.php" class="function">preg_quote()</a></span> 関数を使うと、パターンに使う文字列をエスケープすることができます。
      オプションの二番目のパラメータで、エスケープするデリミタを指定します。
     </p>
     <p class="para">
      終了デリミタの後に <a href="reference.pcre.pattern.modifiers.php" class="link">
      パターン修飾子</a> を付加することもできます。次の例は、大文字小文字を区別しないマッチを行うものです。
      <div class="informalexample">
       <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
#[a-z]#i
</pre></div>
       </div>

      </div>
     </p>
    </div><?php manual_footer($setup); ?>