PHP Regex Kullanımı ve Örnekleri

PHP Regex Kullanımı ve Örnekleri

PHP Regex Kullanımı ve Örnekleri

PHP Regex Kullanımı ve Örnekleri

PHP'de Regex (düzenli ifadeler) kullanarak metin işleme işlemleri yapabilirsiniz. Regex, belirli bir desene uyan metinleri aramak veya değiştirmek için kullanılır. Bu desenler, özel karakterler ve sözdizimi kullanılarak tanımlanır.

Aşağıda, PHP'de Regex kullanarak sık kullanılan işlemler için bazı örnekler verilmiştir:

Metin içinde belirli bir kelimeyi arama:

$pattern = '/\bexample\b/';
$text = 'This is an example text.';
if (preg_match($pattern, $text)) { echo 'Pattern found!'; } else { echo 'Pattern not found.'; }

Bu örnekte, \bexample\b düzenli ifadesi kullanılarak $text metni içinde "example" kelimesi aranıyor. preg_match() işlevi, metinde desene uyan herhangi bir şey bulunursa true döndürür.

Metin içindeki tüm belirli bir kelimeyi değiştirme:

$pattern = '/\bexample\b/';
$replacement = 'sample';
$text = 'This is an example text.';
$new_text = preg_replace($pattern, $replacement, $text);
echo $new_text;

Bu örnekte, \bexample\b düzenli ifadesi kullanılarak $text metni içinde "example" kelimesi "sample" kelimesiyle değiştiriliyor. preg_replace() işlevi, desene uyan herhangi bir şeyi, değiştirme dizesiyle değiştirir.

Metin içindeki tüm sayıları alma:

$pattern = '/\d+/';
$text = 'There are 123 apples and 456 oranges.';
preg_match_all($pattern, $text, $matches);
print_r($matches[0]);

Bu örnekte, \d+ düzenli ifadesi kullanılarak $text metnindeki tüm sayılar (\d rakamları temsil eder) $matches dizisinde toplanır. preg_match_all() işlevi, desene uyan herhangi bir şeyi tüm eşleşmelerle birlikte $matches dizisinde döndürür.

Yukarıdaki örnekler, PHP'de Regex kullanarak metin işleme işlemleri yapmak için temel bir anlayış sağlar. Ancak Regex oldukça kapsamlı bir konudur ve daha fazla bilgiye ihtiyacınız varsa, PHP'nin resmi belgelerine veya Regex öğrenme kaynaklarına başvurabilirsiniz.


E-posta adresi doğrulama:

$pattern = '/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/';
$email = '[email protected]';
if (preg_match($pattern, $email)) { echo 'Valid email address!'; } else { echo 'Invalid email address.'; }

Bu örnekte, ^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$ düzenli ifadesi kullanılarak bir e-posta adresinin doğru formatta olup olmadığı kontrol edilir. Bu desen, e-posta adresindeki karakterleri ve desenleri kontrol eder ve geçerli bir e-posta adresi bulunursa true döndürür.

Telefon numarası doğrulama:

$pattern = '/^\+?\d{1,3}[- ]?\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$/';
$phone = '123-456-7890';
if (preg_match($pattern, $phone)) { echo 'Valid phone number!'; } else { echo 'Invalid phone number.'; }

Bu örnekte, ^\+?\d{1,3}[- ]?\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$ düzenli ifadesi kullanılarak bir telefon numarasının doğru formatta olup olmadığı kontrol edilir. Bu desen, telefon numarasındaki karakterleri ve desenleri kontrol eder ve geçerli bir telefon numarası bulunursa true döndürür.

HTML etiketlerinden içerik alma:

$pattern = '/<\s*([a-z]+)[^>]*>(.*?)<\s*\/\s*\1\s*>/is';
$html = '<h1>Example Title</h1><p>Example paragraph.</p>';
preg_match_all($pattern, $html, $matches);
print_r($matches[2]);

Bu örnekte, <\s*([a-z]+)[^>]*>(.*?)<\s*\/\s*\1\s*>/is düzenli ifadesi kullanılarak bir HTML metnindeki tüm etiketlerden içeriği alınır. $matches dizisi, etiket içeriğiyle eşleşen her şeyi içerir ve print_r() işleviyle ekrana yazdırılabilir.

Bu örnekler, Regex kullanarak daha karmaşık işlemler yapabilmenize yardımcı olabilir. Ancak, Regex kullanırken dikkatli olmanız gerekir, çünkü yanlış bir desen veya yanlış bir kullanım, beklenmedik sonuçlar doğurabilir.

URL Doğrulama:

$pattern = '/^(https?|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?(.*)?$/i';
$url = 'http://www.example.com/index.php';
if (preg_match($pattern, $url)) { echo 'Valid URL!'; } else { echo 'Invalid URL.'; }

Bu örnekte, ^(https?|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?(.*)?$/i düzenli ifadesi kullanılarak bir URL'nin doğru formatta olup olmadığı kontrol edilir. Bu desen, URL'deki karakterleri ve desenleri kontrol eder ve geçerli bir URL bulunursa true döndürür.

Parola Doğrulama:

$pattern = '/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/';
$password = 'SecurePassword123';
if (preg_match($pattern, $password)) { echo 'Valid password!'; } else { echo 'Invalid password.'; }

Bu örnekte, ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/ düzenli ifadesi kullanılarak bir parolanın doğru formatta olup olmadığı kontrol edilir. Bu desen, parolanın en az bir harf ve bir rakam içerdiğini, en az 8 karakter uzunluğunda olduğunu kontrol eder ve geçerli bir parola bulunursa true döndürür.

Metin İşleme:

$pattern = '/(?<!\w)([a-z]+)(?!\w)/i';
$text = 'This is some sample text.';
$newText = preg_replace_callback($pattern, function ($match) { return strtoupper($match[0]); }, $text);
echo $newText;

Bu örnekte, /(?<!\w)([a-z]+)(?!\w)/i düzenli ifadesi kullanılarak bir metindeki tüm kelimeler büyük harfe dönüştürülür. preg_replace_callback() işlevi, eşleşen her kelime için bir geri çağırma işlevi çağırır ve büyük harfe dönüştürülmüş kelimeyi yeni metne ekler.