Regex ile kelime veya rakamdan öncesini alma (explode işlemi)

Bilindiği gibi Php‘de bir cümleyi belirli alanlarından bölüntülemek için explode fonksiyonunu kullanırız. Ancak bu anlatacağım bölüntüleme işlemi hem pratik hemde daha hızlı sonuç elde etmemizi sağlayacaktır.

Anlatıma geçmeden önce sizlere preg_match fonksiyonunun temel yapısından bahsedeyim biraz. preg_match fonksiyonu cümlemizin içinde belirlediğimiz aralığı taşıyan sonuçları döndürür. preg_match tekil arama yapar ve bize bulduğu ilk sonucu yazdırır. Ancak bu işlemi çoğul olarak yapmak istersek, Yani şartları karşılayan tüm sonuçları yazdırmak istersek devreye preg_match_all fonksiyonu girecektir.

Şimdi bölüntüleme işlemine geçebiliriz.

ilk olarak rakamdan öncesini ayırma işlemi yapalım . bu örnekte biz 7 rakamını baz aldık. cümlemizin içinde 7 bulunacak ve öncesi sonuç olarak yazdırılacaktır

$metin[] = '6 yıl önce Mini mini bir kuş konmuştu Pencereme 7 gün hemde'; $metin[] = '0 yedi 3 dört 9 altı 7 beş 2'; foreach($metin as $value) { echo '<p>Gönderilen: '.$value.'<br />'; if(preg_match('~^([^7]*)~s', $value, $sonuc)) { echo 'Bulunan: '.$sonuc[1]; } echo '</p>'; }

Yukarda yazdığımız işlem bize aşağıdaki sonucu verecektir

Gönderilen: 6 yıl önce Mini mini bir kuş konmuştu Pencereme 7 gün hemde
Bulunan: 6 yıl önce Mini mini bir kuş konmuştu Pencereme

Gönderilen: 0 yedi 3 dört 9 altı 7 beş 2
Bulunan: 0 yedi 3 dört 9 altı

Aşağıdaki örnekte ise kelimelerle arama işlemi yapacağız. Bu işlemimizde cümlemizde yer alan kuş ve altı baz alındı. ve öncesi yazdırılacaktır.

$metin[] = '6 yıl önce Mini mini bir kuş konmuştu dördüz Pencereme 7 gün hemde'; $metin[] = '0 yedi 3 dört 9 altı 7 beş 2'; foreach($metin as $value) { echo '<p>Gönderilen: '.$value.'<br />'; if(preg_match('~^((?:(?!kuş|altı).)*)~s', $value, $sonuc)) { echo 'Bulunan: '.$sonuc[1]; } echo '</p>'; }

Yukarda yazdığımız işlem bize aşağıdaki sonucu verecektir

Gönderilen: 6 yıl önce Mini mini bir kuş konmuştu dördüz Pencereme 7 gün hemde
Bulunan: 6 yıl önce Mini mini bir

Gönderilen: 0 yedi 3 dört 9 altı 7 beş 2
Bulunan: 0 yedi 3 dört 9

 

Anlatımımızın sonuna geldik . kafanıza takılan birşey olursa yorum bölümüne yazabilirsiniz. Umarım işinize yaramışır.

Başka bir yazıda görüşmek üzere…