CodeBlanks Logo Icon CodeBlanks

Quantifiers

PHP kursu · İleri seviye · Ders 45/92

*, +, ? ve {} ile bir desenin kaç kez tekrar edeceğini öğrenirsin.

Quantifier'lar: *, +, ?, {n}

Bir öğenin kaç kez tekrar edeceğini söyleyen işaretlere quantifier denir. En yaygın dördü:

* sıfır veya daha fazla. ab*c deseni ac, abc, abbbbc ile eşleşir.

+ bir veya daha fazla. ab+c en az bir b ister, ac ile eşleşmez.

? sıfır veya bir (isteğe bağlı). ab?c hem ac hem abc ile eşleşir.

{n,m} n ile m arası tekrar. a{2,4} en az 2 en çok 4 a.

Açgözlü ve tembel eşleşme

Quantifier'lar varsayılan olarak açgözlüdür: mümkün olan en uzun eşleşmeyi alırlar. /".+"/ deseni "elma" ve "armut" arasındaki tüm metni tek parça olarak alır.

Soru işareti ekleyerek tembel yapabilirsin: /".+?"/ en kısa eşleşmeyi alır, yani ilk "..." çiftini.

Tırnak veya etiket arası içerik alırken tembel davranmak çoğu zaman daha güvenlidir.

Uygulama Telefon biçimini doğrula

isPhoneNumber(string $str): bool fonksiyonunu yaz. 05XX XXX XX XX biçimini /^05\d{2}\s\d{3}\s\d{2}\s\d{2}$/ deseniyle doğrulasın; eşleşirse true, yoksa false döndürsün. preg_match sonucunu === 1 ile karşılaştır. Ardından gelen üç echo çağrısı zaten yazılı.

Örnek çözümü göster
bool { return preg_match("/^05\d{2}\s\d{3}\s\d{2}\s\d{2}$/", $str) === 1; } yaz.
Örnek çözüm:
<?php
// isPhoneNumber: 05XX XXX XX XX biçimini quantifier'larla doğrula

// isPhoneNumber fonksiyonunu tanımla
function isPhoneNumber(string $str): bool {
    return preg_match("/^05\d{2}\s\d{3}\s\d{2}\s\d{2}$/", $str) === 1;
}

echo isPhoneNumber("0555 123 45 67") ? "geçerli\n" : "geçersiz\n";
echo isPhoneNumber("12345") ? "geçerli\n" : "geçersiz\n";
echo isPhoneNumber("0555 123 45 6") ? "geçerli\n" : "geçersiz\n";

Kendini test et

  1. Bir veya daha fazla rakam

    $pattern = "/\d____/";
    preg_match($pattern, "Tel: 0555", $matches);
    Cevabı göster
    $pattern = "/\d+/";
    preg_match($pattern, "Tel: 0555", $matches);
  2. Quantifier anlamları

    *
    Sıfır veya daha fazla
    +
    Bir veya daha fazla
    ?
    Sıfır veya bir
    {2,4}
    İki ile dört arası
  3. a*b deseninde * ne anlama gelir?

    • a harfinin tam olarak bir kez
    • a harfinin en az bir kez
    • a harfinin sıfır veya daha fazla kez
    • a harfinin sıfır veya bir kez
    Cevabı göster

    a harfinin sıfır veya daha fazla kez — Doğru. * sıfır veya daha fazla tekrar demektir.

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