Merhaba Webkolog takipçileri! Web geliştirme süreçlerinde metinlerle çalışmak, neredeyse her zaman karşımıza çıkan bir durumdur. Metinleri aramak, değiştirmek, belirli bir formata uyup uymadığını kontrol etmek gibi işlemleri yaparken Regex (Regular Expressions - Düzenli İfadeler) adı verilen güçlü bir araçtan faydalanırız. Bugünkü makalemde, PHP'nin düzenli ifade fonksiyonlarını ve PHP 5.2 versiyonuna uygun temel kullanımlarını anlatacağım.
Regex Nedir?
Regex, metinler içinde belirli desenleri (pattern) tanımlamak için kullanılan özel bir dildir. Bu desenler sayesinde, string'ler üzerinde çok esnek ve karmaşık arama ve değiştirme işlemleri yapabiliriz. Örneğin, bir metinde tüm e-posta adreslerini bulmak, bir URL'nin geçerli olup olmadığını kontrol etmek veya bir string'teki tüm rakamları silmek gibi görevleri Regex ile kolayca gerçekleştirebiliriz.
PHP'de Regex işlemleri için genellikle PCRE (Perl Compatible Regular Expressions) kütüphanesi kullanılır. Bu kütüphane sayesinde metin işlemlerini preg_
ile başlayan fonksiyonlarla yaparız.
Temel Regex Sözdizimi
Bir düzenli ifade, genellikle sınırlayıcı karakterler (delimiter) arasına yazılır. En sık kullanılan sınırlayıcı karakterler /
ve #
'dir.
/desen/modlar
Birkaç temel karakter ve anlamları şunlardır:
.
: Herhangi bir tek karakteri eşleştirir (satır sonu hariç).[abc]
: Köşeli parantez içindeki karakterlerden herhangi birini eşleştirir.[a-z]
: Belirtilen aralıktaki herhangi bir karakteri eşleştirir.\d
: Herhangi bir rakamı eşleştirir (0-9).\s
: Herhangi bir boşluk karakterini eşleştirir (boşluk, tab, satırsonu).^
: Satırın başlangıcını eşleştirir.$
: Satırın sonunu eşleştirir.
Bir karakterden sonra gelen miktar belirleyiciler (quantifiers) ise eşleşme sayısını kontrol eder:
?
: Karakterin sıfır veya bir kez eşleşmesini sağlar.*
: Karakterin sıfır veya daha fazla kez eşleşmesini sağlar.+
: Karakterin bir veya daha fazla kez eşleşmesini sağlar.{n}
: Karakterin tam olarak n kez eşleşmesini sağlar.
PHP'de Regex Fonksiyonları
PHP'de Regex kullanmak için birçok fonksiyon bulunur. İşte en yaygın olanlar:
- preg_match(): Bir string içinde bir desenin olup olmadığını kontrol eder. Eşleşme bulursa
true
döner. - preg_replace(): Bir string içindeki desene uyan kısımları başka bir string ile değiştirir.
- preg_split(): Bir string'i desene göre parçalara ayırır ve bir dizi olarak döndürür.
1. Metin İçinde Arama: preg_match()
Bir e-posta adresinin geçerli olup olmadığını kontrol edelim.
<?php
$email = "[email protected]";
$desen = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i";
if (preg_match($desen, $email)) {
echo "Girilen e-posta adresi geçerlidir.";
} else {
echo "Geçersiz e-posta adresi.";
}
?>
Buradaki i
modu, aramanın küçük/büyük harf duyarsız olmasını sağlar.
2. Metin Değiştirme: preg_replace()
Bir metindeki tüm HTML etiketlerini temizleyelim.
<?php
$metin = "<b>Merhaba</b> <a href='#'>Webkolog</a> takipçileri!";
$desen = "/<[^>]*>/i"; // < ve > arasındaki her şeyi eşleştir
$temiz_metin = preg_replace($desen, "", $metin);
echo $temiz_metin; // Çıktı: Merhaba Webkolog takipçileri!
?>
Bu örnekte, <[^>]*>
deseni, <
ile başlayıp >
ile biten tüm etiketleri bulur ve boş bir string ile değiştirir.
3. Metin Parçalama: preg_split()
Bir metni virgül ve boşluk karakterlerine göre parçalayalım.
<?php
$metin = "elma, armut, muz, çilek";
$desen = "/[, ]/"; // Virgül veya boşluk
$meyveler = preg_split($desen, $metin);
print_r($meyveler);
?>
Bu kod, metni virgül ve boşluk karakterlerinden böler ve bir dizi oluşturur. Çıktı şu şekilde olacaktır: Array ( [0] => elma [1] => armut [2] => muz [3] => çilek )
Evet sevgili Webkolog takipçileri, PHP'de Regex ile metin işlemenin temel mantığını anlatmaya çalıştım. Düzenli ifadeler, ilk başta karmaşık gelebilir, ancak pratik yaparak metin işleme yeteneklerinizi büyük ölçüde geliştirebilirsiniz.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder