Гурӯҳҳои рамзҳо дар ибораҳои мунтазами PHP
Фармонҳои махсус мавҷуданд, ки имкон медиҳанд
дар як вақт гурӯҳҳои тамоми рамзҳоро интихоб кунед. Фармони
\d рамзи аз 0 то 9-ро ифода мекунад.
Фармони \w рақам, ҳарфи лотинӣ
ё аломати хати зеринро ишора мекунад. Фармони \s
фосила ё рамзи фосиларо ифода мекунад:
фосила, табдили сатр, табулятсия. Имкон дорад
қимати фармонро баръакс кунед, бо навиштани ҳарфи
калон: масалан, агар \d - рақам бошад,
пас \D - рақам нест.
Намуна
Биёед ҳамаи рақамҳоро ёбем:
<?php
$str = '1 12 123';
$res = preg_replace('#\d#', '!', $str);
?>
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'! !! !!!'
Намуна
Операторҳои такрорӣ фармонҳои-гурӯҳҳоро
як бутун ҳисоб мекунанд, яъне қавсҳои гурӯҳбандикунанда
лозим нестанд. Дар намунаи зерин нақшаи ҷустуҷӯ
ба ин шакл аст: рақам аз 0 то 9
як бор ё зиёда аз он:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\d+#', '!', $str);
?>
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'! ! ! abc @@@'
Намуна
Дар намунаи зерин нақшаи ҷустуҷӯ ба ин
шакл аст: ҳар чиз як бор ё зиёда аз он,
аммо рақам аз 0 то 9 нест:
<?php
$str = '123abc3@@';
$res = preg_replace('#\D+#', '!', $str);
?>
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'123!3!'
Намуна
Дар ин намуна нақшаи ҷустуҷӯ ба ин шакл аст: рамзи фосила як бор:
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\s#', '!', $str);
?>
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'1!12!123!abc!@@@'
Намуна
Дар ин намуна нақшаи ҷустуҷӯ ба ин шакл аст:
рамзи НЕ фосила як бор ё зиёда аз он.
Ҳамаи зерсатрҳо, ки бо фосилаҳо ҷудо шудаанд, иваз карда мешаванд
ба '!':
<?php
$str = '1 12 123 abc @@@';
$res = preg_replace('#\S+#', '!', $str);
?>
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'! ! ! ! !'
Намуна
Дар ин намуна нақшаи ҷустуҷӯ ба ин шакл аст:
рақам ё ҳарф як бор ё зиёда аз он.
Ҳамаи зерсатрҳо, ки аз рақамҳо ва ҳарфҳо иборатанд,
иваз карда мешаванд ба '!':
<?php
$str = '1 12 123a Abc @@@';
$res = preg_replace('#\w+#', '!', $str);
?>
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'! ! ! ! @@@'
Намуна
Дар ин намуна нақшаи ҷустуҷӯ ба ин шакл аст:
НЕ рақам ва НЕ ҳарф як бор ё зиёда аз он.
Зер ба ин таъриф дар ҳолати мо меафтад
'@@@' ва ҳамаи фосилаҳо (онҳо ҳам
рақам ва ҳарф нестанд). Диққати худро ба
ин чиз ҷалб кунед, ки дар охир як '!' - ба он
сатр ' @@@' табдил дода шуд - бо
фосила дар пеш:
$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);
Дар натиҷа ба тағирёбандаи зерин сабт карда мешавад:
'1!12!123!Abc!'
Вазифаҳои амалӣ
Сатр дода шудааст:
<?php
$str = 'a1a a2a a3a a4a a5a aba aca';
?>
Регулярие нависед, ки сатрҳоро меёбад,
дар онҳо дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо як рақам.
Сатр дода шудааст:
<?php
$str = 'a1a a22a a333a a4444a a55555a aba aca';
?>
Регулярие нависед, ки сатрҳоро меёбад,
дар онҳо дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо ҳар чанд рақам.
Сатр дода шудааст:
<?php
$str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>
Регулярие нависед, ки сатрҳоро меёбад,
дар онҳо дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо ҳар чанд рақам (дар
шумора ва сифр рақам, яъне сатри 'aa').
Сатр дода шудааст:
<?php
$str = 'avb a1b a2b a3b a4b a5b abb acb';
?>
Регулярие нависед, ки сатрҳоро меёбад
ба шакли зерин: дар канорҳо ҳарфҳо
'a' ва 'b' истодаанд, ва байни онҳо - нест
рақам.
Сатр дода шудааст:
<?php
$str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>
Регулярие нависед, ки сатрҳоро меёбад
ба шакли зерин: дар канорҳо ҳарфҳо
'a' ва 'b' истодаанд, ва байни онҳо - нест
ҳарф ва нест рақам.
Сатр дода шудааст:
<?php
$str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>
Регулярие нависед, ки ҳамаи фосилаҳоро
иваз мекунад ба '!'.