PHP regular ifodalardagi belgilar guruhlari
Bir vaqtning o'zida butun belgilar guruhini tanlash imkonini beruvchi
maxsus buyruqlar mavjud. \d buyrug'i 0 dan 9 gacha bo'lgan raqamni
anglatadi. \w buyrug'i raqam, lotin harfini yoki pastki chiziq belgisini
bildiradi. \s buyrug'i bo'shliq yoki bo'shliq belgisini anglatadi:
bo'shliq, qator almashinuvi, tabulyatsiya. Buyruqning qiymatini inversiyalash
mumkin: masalan, agar \d - raqam bo'lsa, \D - raqam emas.
Misol
Keling, barcha raqamlarni topamiz:
<?php
$str = '1 12 123';
$res = preg_replace('#\d#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! !! !!!'
Misol
Takrorlash operatorlari buyruq-guruhlarni butun deb hisoblaydi,
ya'ni guruhlashtiruvchi qavslar kerak emas. Quyidagi misolda qidiruv shabloni
quyidagicha ko'rinadi: 0 dan 9 gacha bo'lgan raqam
bir yoki bir necha marta:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\d+#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! abc @@@'
Misol
Quyidagi misolda qidiruv shabloni quyidagicha ko'rinadi:
0 dan 9 gacha bo'lmagan raqam emas, balki bir yoki bir necha marta:
<?php
$str = '123abc3@@';
$res = preg_replace('#\D+#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'123!3!'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi: bir marta bo'shliq belgisi:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\s#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'1!12!123!abc!@@@'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi:
bo'shliq belgisi EMAS bir yoki bir necha marta.
Bo'shliqlar bilan ajratilgan barcha pastki satrlar
'!' ga almashtiriladi:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\S+#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ! !'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi:
raqam yoki harf bir yoki bir necha marta.
Raqamlar va harflardan tashkil topgan barcha pastki satrlar
'!' ga almashtiriladi:
<?php
$str = '1 12 123a Abc @@@';
$res = preg_replace('#\w+#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ! @@@'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi:
raqam EMAS va harf EMAS bir yoki bir necha marta.
Bizning holatda bu ta'rifga '@@@' va barcha bo'shliqlar (chunki ular ham
raqam emas va harf emas) mos keladi. E'tiboringizni qaratish kerakki
oxirida bitta '!' - unga ' @@@' satri - oldida
bo'shliq bilan aylantirilgan:
$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);
Natijada o'zgaruvchiga quyidagilar yoziladi:
'1!12!123!Abc!'
Amaliy vazifalar
Satr berilgan:
<?php
$str = 'a1a a2a a3a a4a a5a aba aca';
?>
chetlarda 'a' harflari turgan,
ular orasida bitta raqam bo'lgan satrlarni topadigan regular yozing.
Satr berilgan:
<?php
$str = 'a1a a22a a333a a4444a a55555a aba aca';
?>
chetlarda 'a' harflari turgan,
ular orasida istalgan miqdordagi raqamlar bo'lgan satrlarni topadigan regular yozing.
Satr berilgan:
<?php
$str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>
chetlarda 'a' harflari turgan,
ular orasida istalgan miqdordagi raqamlar (shu
jumladan nol raqam, ya'ni 'aa' satri) bo'lgan satrlarni topadigan regular yozing.
Satr berilgan:
<?php
$str = 'avb a1b a2b a3b a4b a5b abb acb';
?>
Quyidagi ko'rinishdagi satrlarni topadigan regular yozing:
chetlarda 'a' va 'b' harflari turgan,
ular orasida - raqam emas.
Satr berilgan:
<?php
$str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>
Quyidagi ko'rinishdagi satrlarni topadigan regular yozing:
chetlarda 'a' va 'b' harflari turgan,
ular orasida - harf emas va raqam emas.
Satr berilgan:
<?php
$str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>
Barcha bo'shliqlarni '!' ga almashtiradigan regular yozing.