CodeBlanks Logo Icon CodeBlanks

Karakter sınıfları

PHP kursu · İleri seviye · Ders 44/92

\d, \w, \s ve [a-z] gibi karakter sınıflarıyla deseni daraltmayı öğrenirsin.

Karakter sınıfları: [a-z] ve \d

Tek bir harf yerine bir karakter kümesini eşleştirmek için karakter sınıfı kullanılır. Köşeli parantez içinde yazılır: [aeiou] herhangi bir sesli harfi eşler.

Tire ile aralık verilebilir: [a-z] küçük harfler, [0-9] rakamlar. Sınıfın başına ^ koyarsan değildir anlamına gelir: [^0-9] rakam olmayan her şey.

Kısayollar da vardır: \d = [0-9], \w = [a-zA-Z0-9_], \s boşluk. Büyük harfli sürümleri (\D, \W, \S) olumsuzudur.

Aralık ve olumsuzama

Karakter sınıfında tire (-) aralık belirtir. [0-9] bir rakam, [A-Fa-f0-9] onaltılık bir hane demektir.

Sınıfın ilk karakteri ^ ise olumsuzama yapar: [^0-9] rakam olmayan tek karakteri eşler. ^'ı sınıfın başına değil içine koyarsan normal karakter olur.

Tire kendini eşlemek için sınıfın başına veya sonuna koy: [-a] ya da [a-].

Uygulama Yalnız harf ve rakam mı?

isAlphanumeric(string $str): bool fonksiyonunu yaz. Desen /^[a-zA-Z0-9]+$/ ile yalnız harf ve rakam içeriyorsa true, değilse false döndürsün. preg_match sonucunu === 1 ile karşılaştır. Ardından gelen üç echo çağrısı zaten yazılı; "PHP8", "PHP 8" ve "PHP-8" için sonucu yazdırsın.

Örnek çözümü göster
bool { return preg_match("/^[a-zA-Z0-9]+$/", $str) === 1; } yaz.
Örnek çözüm:
<?php
// isAlphanumeric: yalnız harf ve rakam mı?
// preg_match ile [a-zA-Z0-9] deseni kullan

// isAlphanumeric fonksiyonunu tanımla
function isAlphanumeric(string $str): bool {
    return preg_match("/^[a-zA-Z0-9]+$/", $str) === 1;
}

echo isAlphanumeric("PHP8") ? "evet\n" : "hayır\n";
echo isAlphanumeric("PHP 8") ? "evet\n" : "hayır\n";
echo isAlphanumeric("PHP-8") ? "evet\n" : "hayır\n";

Kendini test et

  1. Kısayolları anlama

    \d
    Rakam
    \w
    Kelime karakteri
    \s
    Boşluk
    \D
    Rakam olmayan
    [a-z]
    Küçük harf aralığı
  2. [a-z] deseni neyi eşler?

    • Yalnızca 'a' ve 'z' harflerini
    • Büyük ve küçük harfleri
    • Rakamları
    • a'dan z'ye kadar küçük harflerden birini
    Cevabı göster

    a'dan z'ye kadar küçük harflerden birini — Doğru. [a-z] a ile z arasındaki küçük harflerden birini eşler.

  3. Rakam aralığı ekle

    $pattern = "/[____]+/";
    preg_match($pattern, "Tel: 0555", $matches);
    Cevabı göster
    $pattern = "/[0-9]+/";
    preg_match($pattern, "Tel: 0555", $matches);

İleri seviye bölümündeki tüm dersler