PHP Regular Ifodalarida Belgilar To‘plamlari
Belgilar guruhlari \d va \w
juda moslashuvchan emas. Hatto barcha harflarni, lekin raqamlarni emas, topish kabi oddiy vazifa ham
ular yordamida hal qilinmaydi. Bunday vazifalar uchun
YOKI amalini ifodalovchi kvadrat qavslardan
foydalanish kerak.
Kvadrat qavslar ichida ko‘rsatilgan har qanday belgidan biri o‘rnini bosadi.
Masalan, shu tarzda: #x[abc]x# - biz aytamizki,
chekkalarda x harflari turishi kerak, va ichida
- bitta belgi: 'a', yoki 'b',
yoki 'c'.
Kvadrat qavslardan keyin takrorlash operatorlarini
yozish mumkin. Masalan, shu tarzda: #x[abc]+x#
- biz aytamizki, x lar ichida
'a', 'b'
va 'c' belgilaridan istalgan miqdorda bo‘lishi mumkin
- har qanday kombinatsiyada.
Faqat belgilarni sanab o‘tishgina emas, balki
ikki belgi orasiga defis qo‘yib, belgilar guruhlarini yaratish
mumkin. Masalan, shu tarzda: #[a-d]#
- biz 'a' dan
'd' gacha bo‘lgan barcha belgilarni olamiz.
Keling, misollar bilan ko‘ramiz.
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'a'
dan 'z' gacha bo‘lgan har qanday harf:
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! ! x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'a'
dan 'k' gacha bo‘lgan har qanday harf:
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! xmx x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'A'
dan 'Z' gacha bo‘lgan har qanday harf:
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'xax ! xcx x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 0 dan 9 gacha bo‘lgan har qanday raqam:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'xax ! ! ! x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 3 dan 7 gacha bo‘lgan har qanday raqam:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'xax x1x ! ! x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'a'
dan 'z' gacha bo‘lgan har qanday harf yoki 1 dan 9 gacha bo‘lgan raqam:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! ! ! x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'a'
dan 'z' gacha bo‘lgan har qanday harf yoki 'A' dan
'Z' gacha bo‘lgan harf:
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! ! x5x x@x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'a'
dan 'z' gacha bo‘lgan har qanday harf yoki 1, 2 raqamlari:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! ! ! x3x'
Misol
Ushbu misolda qidirish shabloni shunday ko‘rinadi:
x lar orasida 'a' dan 'z' gacha bo‘lgan harflar
1 va undan ko‘p miqdorda:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'xx ! ! ! x123x xa3x'
Misol
Keling, harflar soni nolga teng bo‘lishiga ham ruxsat beraylik:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! ! x123x xa3x'
Amaliy vazifalar
Berilgan satr:
<?php
$str = 'aba aea aca aza axa';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - 'b', 'e'
yoki 'x' harfi.
Berilgan satr:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - 3-lardan 6-largacha bo‘lgan raqam.
Berilgan satr:
<?php
$str = 'aba aea afa aha aga';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - a dan g gacha bo‘lgan harf.
Berilgan satr:
<?php
$str = 'aba aea afa aha aga';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - a dan f gacha va j dan z gacha bo‘lgan harf.
Berilgan satr:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - a dan f gacha va A dan D gacha bo‘lgan harf.
Berilgan satr:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - kichik lotin harflari,
qolganlariga tegmasdan.
Berilgan satr:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - kichik va katta lotin
harflari, qolganlariga tegmasdan.
Berilgan satr:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Quyidagi shablonga mos keladigan regular ifodani yozing:
chekkalarda 'a' harflari turadi,
va ular orasida - kichik lotin harflari
va raqamlar, qolganlariga tegmasdan.