PHP Regular Ifodalarda 'yoki' Buyrug'i
Ushbu darsda biz
| buyrug'ini tahlil qilamiz, bu
[] buyrug'iga qaraganda kuchliroq
YOKI variantidir. Ushbu buyruq
regularni bir nechta qismlarga bo'lish imkonini beradi.
Bunda izlanayotgan narsa regularning bir qismiga
yoki boshqasiga to'g'ri kelishi mumkin. Keling,
misollar orqali ko'rib chiqaylik.
Misol
Ushbu misolda qidiruv shabloni quyidagicha: uchta
'a' harfi yoki uchta 'b' harfi:
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! abb'
Misol
Ushbu misolda qidiruv shabloni quyidagicha: uchta
'a' harfi yoki 1 va undan ko'p
'b' harflari:
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ! axx'
Misol
Ushbu misolda qidiruv shabloni quyidagicha: bir yoki undan ko'p harf yoki uchta raqam:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! 1 12 !'
Misol
Vertikal chiziq regularni ikkiga emas, balki istalgan miqdordagi qismlarga bo'lishi mumkin:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ddd'
Misol
Agar vertikal chiziq dumaloq
qavs ichida turgan bo'lsa, 'yoki' faqat shu
qavs ichida ishlaydi. Misol uchun, quyidagi shablon bo'yicha satrlarni
topamiz: boshida 'a', yoki 'b' bir yoki undan ko'p
marta turadi, keyin esa ikkita 'x' harfi keladi:
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! exx'
Amaliy Mashqlar
Berilgan satr:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Quyidagi shablon bo'yicha satrlarni topadigan regular yozing:
chetlarda 'a' harflari turadi,
ular orasida - 'e' harfi istalgan
miqdorda yoki 'x' harfi istalgan
miqdorda.
Berilgan satr:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Quyidagi shablon bo'yicha satrlarni topadigan regular yozing:
chetlarda 'a' harflari turadi,
ular orasida - 'e' harfi ikki marta
yoki 'x' harfi istalgan miqdorda.