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:
$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.
$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.
$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.
$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.
$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.
$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.
$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.
$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.
$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.