<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/pcre.pattern.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'reference.pcre.pattern.differences.php',
    1 => 'Perl ile Farklar',
    2 => 'Perl\'e g&ouml;re farklılıklar',
  ),
  'up' => 
  array (
    0 => 'pcre.pattern.php',
    1 => 'PCRE Şablonları',
  ),
  'prev' => 
  array (
    0 => 'reference.pcre.pattern.modifiers.php',
    1 => 'Şablon Değiştiricileri',
  ),
  'next' => 
  array (
    0 => 'ref.pcre.php',
    1 => 'PCRE İşlevleri',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/pcre/pattern.differences.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="reference.pcre.pattern.differences" class="article">
 <h1 class="title">Perl&#039;e göre farklılıklar</h1>

 
 <p class="para">
  PCRE&#039;nin Perl&#039;in 5.005 sürümüne göre farkları burada açıklanmıştır.
  <ol type="1">
   <li class="listitem">
    <span class="simpara">
     PCRE&#039;yi başka bir karakter türü tablosu ile derlemek mümkünse de bir
     boşluk karakteri, öntanımlı olarak, C kütüphanesinin isspace() işlevi
     ile tanınan bir karakterdir. Normalde isspace() işlevinin eşleştiği
     boşluk karakterleri, boşluk, sayfa ileri, satırsonu, satırbaşı yatay ve
     düşey sekme karakterleridir. Perl 5&#039;te düşey sekme karakteri artık
     boşluk karakterlerinden biri olarak ele alınmamaktadır. \v özel karakteri
     Perl belgelerinde uzun zamandır yer almamaktadır. Yine de, 5.002
     sürümüne kadar boşluk karakterlerinden biri olarak ele alınmaktaydı.
     5.004 ve 5.005&#039;te \s ile eşleşmemektedir.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     PCRE ileriye bakan savlarda yineleyicilere izin vermez. Perl buna izin
     verirse de bunu sizin düşündüğünüz tarzda ele almaz. Örneğin, (?!a){3}
     şablonu, sonraki üç karakterin &quot;a&quot; olmayacağını değil, sonraki &quot;a&quot;&#039;nın üç
     kere yinelenmeyeceğini iddia eder.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     İleriye bakan savların içinde yer alan numaralı alt şablonlar sayılır
     fakat başlangıç yöneylerindeki girdileri hiçbir zaman ektin kılınmaz.
     Perl, savın başarısız olmasından önce eşleşen böyle şablonlardaki sayısal
     değişkenleri sadece ileriye bakan olumsuz bir sav tek bir dal
     oluşturuyorsa atar.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     İkil sıfır karakterleri eşleşmeye konu dizgede destekleniyorsa da
     normalde C dizgelerini sonlandırdıklarından şablonlar içinde
     bulunmalarına izin verilmez. Bir şablon içinde ikil sıfırı belirtmek için
     &quot;\x00&quot; dizilimi kullanılabilir.
    </span>
    </li>
    <li class="listitem">
    <span class="simpara">
     \l,  \u,  \L,  \U Perl öncelemleri desteklenmemektedir. Aslında bunlar
     Perl&#039;in genel dizge işlemleri altında gerçeklenmiş olup şablon eşleme
     motorunun parçaları değildirler.
    </span>
    </li>
    <li class="listitem">
    <span class="simpara">
     Perl&#039;de \G savı, tekil şablon eşleşmeleri ile ilgili olmadığından
     desteklenmemektedir.
    </span>
    </li>
    <li class="listitem">
    <span class="simpara">
     Oldukça açıktır ki, PCRE (?{kod}) ve (??{kod}) oluşumlarını desteklemez.
     Ancak şablonlar içi içe olduğunda desteklenir.
    </span>
    </li>
    <li class="listitem">
    <span class="simpara">
     Numaralı alt dizgelerin şablonun yinelenen parçaları olduğu durumda Perl
     5.005_02&#039;den kaynaklanan bazı tuhaflıklar söz konusunudr. Örneğin,
     /^(a(b)?)+$/ şablonu &quot;aba&quot; dizgesiyle eşleşirken &quot;b&quot; değerine $2 atanır.
     Fakat, /^(aa(bb)?)+$/ şablonu &quot;aabbaa&quot; dizgesiyle eşleşirken $2&#039;ye hiçbir
     şey atanmaz. Ancak, şablon, /^(aa(b(b))?)+$/ olarak yazılırsa $2 (ve $3)
     değişkenlerine değer atanır. Perl 5.004&#039;te $2 her iki durumda da
     atanmaktadır. Eğer Perl, gelecekte bu tutarlı durumda bir değişiklik
     yapacak olursa PCRE de bu değişikliğe uyum sağlayacaktır.
    </span>
    </li>
    <li class="listitem">
    <span class="simpara">
     Perl 5.005_02&#039;deki henüz çözümlenmemiş başka bir tutarsızlık da, PCRE&#039;nin
     tersine /^(a)?(?(1)a|b)+$/ şablonunun &quot;a&quot; dizgesiyle eşleşmesidir.
     Bununla birlikte gerek Perl gerekse PCRE, /^(a)?a/ şablonunu &quot;a&quot; ile
     eşleştirirken $2 değişkenine hiçbir şey atamazlar.
    </span>
    </li>
    <li class="listitem">
    <p class="para">
     PCRE&#039;nin Perl düzenli ifade oluşumlarına ek olarak bazı oluşumları vardır:
      <ol type="1">
       <li class="listitem">
        <span class="simpara">
         Geriye bakan savların sabit uzunlukta dizgelerle eşleşmesi gerektiği
         halde, geriye bakan savın içerdiği her olasılık farklı uzunluktaki
         bir dizgeyle eşleşebilir. Perl 5.005&#039;te her iki durumda da
         uzunlukların eşit olması gerekir.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">Eğer <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOLLAR_ENDONLY</a>
        seçeneği etkinken
        <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>
        etkin değilse $ işleci sadece dizgenin en sonu ile eşleşir.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">Eğer
        <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTRA</a>
        etkinse tersbölü ile öncelenmiş karakterlerden özel anlamı olmayanlar
        hataya sebep olur.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">Eğer
        <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_UNGREEDY</a>
        etkinse yineleyicilerin tamahkarlığı ters çevrilir, yani,
        yineleyicinin ardına bir &quot;?&quot; imi konmadıkça yineleyiciler öntanımlı
        olarak tamahkarlık göstermezler.
       </span>
      </li>
     </ol>
    </p>
   </li>
  </ol>
 </p>
</div>
<?php manual_footer($setup); ?>