PHP
Karakter sınıfları
\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
-
Kısayolları anlama
- \d
- Rakam
- \w
- Kelime karakteri
- \s
- Boşluk
- \D
- Rakam olmayan
- [a-z]
- Küçük harf aralığı
-
[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.
-
Rakam aralığı ekle
$pattern = "/[____]+/";
preg_match($pattern, "Tel: 0555", $matches);
Cevabı göster
$pattern = "/[0-9]+/";
preg_match($pattern, "Tel: 0555", $matches);
Sıradaki ders: Quantifiers