..


Sponsor Bağlantılar

PCRE düzenli ifade fonksiyonları (ve POSIX fonksiyonları ile farklılıklar)

Max Bossi tarafından yazılmış Makale
4 Sayfa 1

Biz vardı zaten ima bizim blogun sayfalarında son günlerde, ama bugün ben geliştiriciler binlerce ilgisini çekeceğini düşündüğünüz bir konuyu araştırmak istiyorum - benim gibi - her gün kullandığınız web uygulamaları geliştirmek için PHP.

Aslında, düzenli ifadeler potansiyeli isteyen geliştiriciler artık POSIX fonksiyonları kullanmak (yani ereg () ve aile konuşma) ama olabilir, PHP sürüm 5.3 ile başlayarak, mutlaka, PCRE (Perl uyumlu düzenli fonksiyonları kullanmanız gerekir ifadeleri), örneğin, preg_match () .

PHP yerleşik PCRE işlevleri POSIX fonksiyonları bu biraz farklıdır Perl tipik düzenli ifade sözdizimi (daha doğrusu, mevcut uygulama Perl 5,005 söz dizimi ile destek sağlar), kullanmanıza izin verir. PCRE ve sözdizimi hakkında daha fazla bilgi için bakınız mümkündür manuel resmi web sitesi PCRE.org mevcuttur.

Karşılaştırmalar: preg_match ()

Bir dize ve bir desen (düzenli ifadeler şeklinde yazılmış bir modeli) arasında bir karşılaştırma yapmak istiyorsanız bu, aslında,) (ereg () ve eregi yerine preg_match () kullanmanız gerekecektir.

Preg_match () kullanarak, ortak kullanımı oldukça basittir: Eğer işlevi kontrol etmek için desen ve dize geçmek. Desen memnun ise, işlev 1 döndürürse 0 (veya bir hata durumunda FALSE).

Ereg () karmaşık bir şey değil ve aslında göç ederler. Bu modelin oluşturulmasında bazı küçük marifet gerekir.

İşte bir örnek:

 



 <? Php







 if (preg_match ('/ mrwebmaster / i', 'Yaşasın MrWebmaster!')) {



  



 echo "Bulundu";







 Else {}



  



 echo "BULUNAMADI";







 }







 ?>

 
Bu aynı:
 



 <? Php







 if (eregi ('mrwebmaster', 'Yaşasın MrWebmaster!')) {



  



 echo "Bulundu";







 Else {}



  



 echo "BULUNAMADI";







 }







 ?>

 

Preg_match () kullanarak bizim basit örnekte bir desen olarak katar kullanılır

 



 / Mrwebmaster / s

 
Sözdizimi görelim:
  • / ... / - Başlangıç ​​ve ifadenin sonuna sınırlandırmak;
  • mrwebmaster - Eğer ikinci argüman olarak geçen metni kontrol etmek istediğinizde basit bir dizgedir;
  • i - "i" kapattıktan sonra sınırlayıcı arama (gibi işlev eregi () kullanılarak yapıldı) küçük harfe duyarlı değil gerektiğini gösterir. Teknik olarak bu "i", değiştirici Bu sayfada PCRE söz dizimi izin değiştirici tam listesi.

Ereg ile fark ()

Eğer ereg ile fark () görüldüğü gibi çok değil, kısaca özetleyelim:

  • sınırlayıcıları kullanımı / ... / (aslında bir sınırlayıcı olarak diğer karakterler kullanabilirsiniz, ancak çizgi olağan seçim);
  • Harf büyüklüğüne duyarsız sürümü (eregi ()) kapanış sınırlayıcı sonra "i" kullanımı ile değiştirilir;
  • desen karakter / varlığı sınırlayıcılar ile karıştırılmamalıdır için (sizi sınırlayıcı olarak eğik çizgi için kullanılır ise) kaçış (\ /) gerektirir;
  • . PCRE fonksiyonları ile tam tersi; örneğin 10 sayısı ve 13 yeni hat satırbaşı karşılık gelir: ASCII karakter yönetiminde bazı küçük farklılıklar (POSIX fonksiyonları, PCRE aksine sayısal ASCII karakter kabul vardır 10 özel sayısı on) temsil eder.
  • fonksiyonu ereg () beş (ilk iki, daha önce de var, gerekli itiraf sadece üç parametre (desen, metin, isteğe bağlı olarak, sonuçların tutmak için bir dizi kontrol ve olması) ve preg_match () kabul eder, diğer üç isteğe bağlıdır );

Yukarıdaki dayanarak (ve değinilmiştir farklılıklar) biz düzenli ifade sözdizimi hakkında geçerli teorik açıklamalar bulunabilir (kısmen) tekrar düşünebilirsiniz bu sayfayı eski POSIX fonksiyonlara ayrılmış makale "PHP Düzenli İfadeler" in .

Aynı Kategoride ...
E-Öğrenme
Linux (Ders) Linux (Ders)
Açık kaynak sistemi komple rehberi. 49 € düşük.
MySQL (Ders) MySQL (Ders)
Açık kaynak veritabanı yönetimi. En düşük € 39.
PHP (Ders) PHP (Ders)
Dinamik Web siteleri oluşturmak için tam ders. 49 € düşük.
Sponsor Bağlantılar