PHP Düzenli İfadelerde Karakter Kümeleri
\d ve \w karakter grupları
çok esnek değildir. Harf bul ama rakam bulma gibi
basit bir görev bile onlarla çözülemez. Bu tür görevler
için, bir VEYA işlemi temsil eden
köşeli parantezler kullanılmalıdır.
Köşeli parantezler, içinde listelenen herhangi bir
karakterin yerine geçer. Örneğin,
şu şekilde: #x[abc]x# - kenarların
x harfleri olması gerektiğini, içeride ise
- bir karakterin: ya 'a', ya 'b',
ya da 'c' olması gerektiğini söylüyoruz.
Köşeli parantezlerden sonra tekrarlama operatörleri
yazılabilir. Örneğin, şu şekilde: #x[abc]+x#
- x'lerin içinde 'a', 'b'
ve 'c' karakterlerinden herhangi bir miktarda olabileceğini
- herhangi bir kombinasyonda söylüyoruz.
Sadece karakterleri listelemekle kalmayıp, iki karakter
arasına tire koyarak karakter grupları da
oluşturabilirsiniz. Örneğin, şu şekilde: #[a-d]#
- 'a''dan 'd''ye kadar tüm karakterleri elde ederiz.
Örneklerle inceleyelim.
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'a''dan
'z''ye kadar herhangi bir harf:
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'! ! ! x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'a''dan
'k''ye kadar herhangi bir harf:
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'! ! xmx x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'A''dan
'Z''ye kadar herhangi bir harf:
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'xax ! xcx x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 0 ile 9 arasında herhangi bir rakam:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'xax ! ! ! x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 3 ile 7 arasında herhangi bir rakam:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'xax x1x ! ! x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'a''dan
'z''ye kadar herhangi bir harf veya 1 ile 9 arasında bir rakam:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'! ! ! ! x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'a''dan
'z''ye kadar herhangi bir harf veya 'A''dan
'Z''ye kadar herhangi bir harf:
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'! ! ! x5x x@x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'a''dan
'z''ye kadar herhangi bir harf veya 1, 2 rakamları:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'! ! ! ! x3x'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
x'ler arasında 'a''dan 'z''ye kadar harfler
ve 1 veya daha fazla sayıda:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'xx ! ! ! x123x xa3x'
Örnek
Harf sayısının sıfır da olabilmesini sağlayalım:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Sonuç olarak değişkene aşağıdaki yazılacaktır:
'! ! ! x123x xa3x'
Pratik Görevler
Bir dize verildi:
<?php
$str = 'aba aea aca aza axa';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - 'b', 'e'
veya 'x' harfi olan.
Bir dize verildi:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - 3'ten 6'ya kadar bir rakam olan.
Bir dize verildi:
<?php
$str = 'aba aea afa aha aga';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - a'dan g'ye kadar bir harf olan.
Bir dize verildi:
<?php
$str = 'aba aea afa aha aga';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - a'dan f'ye ve j'den z'ye kadar bir harf olan.
Bir dize verildi:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - a'dan f'ye ve A'dan D'ye kadar bir harf olan.
Bir dize verildi:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - küçük Latin harfleri olan,
diğerlerini etkilemeden.
Bir dize verildi:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - küçük ve büyük Latin harfleri olan, diğerlerini etkilemeden.
Bir dize verildi:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Aşağıdaki kalıba göre arama yapan bir düzenli ifade yazın:
kenarlarda 'a' harfleri var,
aralarında ise - küçük Latin harfleri ve rakamlar olan, diğerlerini etkilemeden.