Бофтаҳои аломатҳо дар ибораҳои муқаррарии PHP
Гурӯҳҳои аломатҳо \d ва \w
хеле созгор нестанд. Ҳатто вазифаи оддии,
монанди ёфтани ҳамаи ҳарфҳо, аммо рақамҳо не -
бо онҳо ҳал карда намешавад. Барои чунин вазифаҳо
бояд аз қафсҳои квадратӣ истифода кард, ки намояндаи
амалиёти Ё мебошанд.
Қафсҳои квадратӣ як аломатро иваз мекунанд,
ҳар кадоме, ки дар дохил номбар шудааст. Масалан,
ба ин тарз: #x[abc]x# - мо мегӯем, ки
дар канорҳо бояд ҳарфҳои икс истода бошанд, ва дар дохил
- як аломат: ё 'a', ё 'b',
ё 'c'.
Пас аз қафсҳои квадратӣ метавон операторҳои
такрорро навишт. Масалан, ба ин тарз: #x[abc]+x#
- мо мегӯем, ки дар дохили иксҳо метавонад
ҳар гуна миқдори аломатҳои 'a', 'b'
ва 'c' - дар ҳар гуна комбинатсияҳо бошад.
Метавон на танҳо аломатҳоро номбар кард, балки эҷод кард
гурӯҳҳои аломатҳо, бо навиштани миёни ду аломати
дефис. Масалан, ба ин тарз: #[a-d]#
- мо ҳамаи аломатҳоро аз 'a' то
'd' мегирем.
Биёед дар мисолҳо бинем.
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як ҳарф аз 'a'
то 'z':
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'! ! ! x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як ҳарф аз 'a'
то 'k':
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'! ! xmx x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як ҳарф аз 'A'
то 'Z':
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'xax ! xcx x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як рақам аз 0 то 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'xax ! ! ! x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як рақам аз 3 то 7:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'xax x1x ! ! x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як ҳарф аз 'a'
то 'z' ё рақам аз 1 то 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'! ! ! ! x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як ҳарф аз 'a'
то 'z' ё ҳарф аз 'A' то
'Z':
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'! ! ! x5x x@x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳар як ҳарф аз 'a'
то 'z' ё рақамҳои 1, 2:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'! ! ! ! x3x'
Мисол
Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст:
байни иксҳо ҳарфҳо аз 'a' то 'z'
дар миқдори аз 1 ва зиёд:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'xx ! ! ! x123x xa3x'
Мисол
Биёед чунон кунем, ки миқдори ҳарфҳо метавонад сифр низ бошад:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:
'! ! ! x123x xa3x'
Вазифаҳои амалӣ
Сатр дода шудааст:
<?php
$str = 'aba aea aca aza axa';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарфи 'b', 'e'
ё 'x'.
Сатр дода шудааст:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - рақам аз 3-ум то 6-ум.
Сатр дода шудааст:
<?php
$str = 'aba aea afa aha aga';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарф аз a то g.
Сатр дода шудааст:
<?php
$str = 'aba aea afa aha aga';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарф аз a то f ва аз j то z.
Сатр дода шудааст:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарф аз a то f ва аз A то D.
Сатр дода шудааст:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарфҳои хурди лотинӣ,
дигарҳоро ба кор нагирифта.
Сатр дода шудааст:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарфҳои хурд ва калони лотинӣ
, дигарҳоро ба кор нагирифта.
Сатр дода шудааст:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Ибораи муқаррариеро нависед, ки бо шаблони зерин
меёбад: дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ҳарфҳои хурди лотинӣ
ва рақамҳо, дигарҳоро ба кор нагирифта.