PHP Düzenli İfadelerinde Küme Parantezleri
+, *, ? operatörleri iyidir,
ancak bunlarla belirli bir tekrar sayısı
belirtilemez. Bu durumda {} operatörü
imdadınıza yetişecektir.
Şu şekilde çalışır: {5}
- beş tekrar, {2,5} - iki ile beş arasında tekrar
(ikisi de dahil), {2,}
- iki veya daha fazla tekrar.
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'x' harfi, 'a' harfi bir
veya iki kez, 'x' harfi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
Sonuç olarak değişkene şu yazılacaktır:
'xx ! ! xaaax'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'x' harfi, 'a' harfi iki
veya daha fazla kez, 'x' harfi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
Sonuç olarak değişkene şu yazılacaktır:
'xx xax ! !'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'x' harfi, 'a' harfi üç
kez, 'x' harfi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
Sonuç olarak değişkene şu yazılacaktır:
'xx xax xaax !'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'a' harfi on kez:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
Sonuç olarak değişkene şu yazılacaktır:
'aaa ! aaa'
Örnek
Bu örnekte kodun yazarı şu kalıbı istemişti:
'x' harfi, 'a' harfi üç
kez ve daha az, 'x' harfi,
ancak ne yazık ki bu - {,3} -
çalışmaz. Açıkça belirtmek gerekir:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
Sonuç olarak değişkene şu yazılacaktır:
'xx ! ! !'
Örnek
Sıfır da kabul edilebilir:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
Sonuç olarak değişkene şu yazılacaktır:
'! ! ! !'
Pratik Görevler
Bir string verildi:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'abba', 'abbba', 'abbbba'
stringlerini ve sadece onları bulacak bir düzenli ifade yazın.
Bir string verildi:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'aba' şeklinde, içinde 'b' harfinin
üç defadan az (dahil) geçtiği stringleri bulacak bir düzenli ifade yazın.
Bir string verildi:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'aba' şeklinde, içinde 'b' harfinin
dört defadan fazla (dahil) geçtiği stringleri bulacak bir düzenli ifade yazın.