Бофтаҳои аломатҳо дар ибораҳои муқаррарии PHP

Гурӯҳҳои аломатҳо \d ва \w хеле созгор нестанд. Ҳатто вазифаи оддии, монанди ёфтани ҳамаи ҳарфҳо, аммо рақамҳо не - бо онҳо ҳал карда намешавад. Барои чунин вазифаҳо бояд аз қафсҳои квадратӣ истифода кард, ки намояндаи амалиёти Ё мебошанд.

Қафсҳои квадратӣ як аломатро иваз мекунанд, ҳар кадоме, ки дар дохил номбар шудааст. Масалан, ба ин тарз: #x[abc]x# - мо мегӯем, ки дар канорҳо бояд ҳарфҳои икс истода бошанд, ва дар дохил - як аломат: ё 'a', ё 'b', ё 'c'.

Пас аз қафсҳои квадратӣ метавон операторҳои такрорро навишт. Масалан, ба ин тарз: #x[abc]+x# - мо мегӯем, ки дар дохили иксҳо метавонад ҳар гуна миқдори аломатҳои 'a', 'b' ва 'c' - дар ҳар гуна комбинатсияҳо бошад.

Метавон на танҳо аломатҳоро номбар кард, балки эҷод кард гурӯҳҳои аломатҳо, бо навиштани миёни ду аломати дефис. Масалан, ба ин тарз: #[a-d]# - мо ҳамаи аломатҳоро аз 'a' то 'd' мегирем.

Биёед дар мисолҳо бинем.

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як ҳарф аз 'a' то 'z':

php<?php
  $str = 'xax xbx xcx x@x';
  $res = preg_replace('#x[a-z]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'! ! ! x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як ҳарф аз 'a' то 'k':

php<?php
  $str = 'xax xbx xmx x@x';
  $res = preg_replace('#x[a-k]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'! ! xmx x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як ҳарф аз 'A' то 'Z':

php<?php
  $str = 'xax xBx xcx x@x';
  $res = preg_replace('#x[A-Z]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'xax ! xcx x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як рақам аз 0 то 9:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[0-9]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'xax ! ! ! x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як рақам аз 3 то 7:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[3-7]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'xax x1x ! ! x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як ҳарф аз 'a' то 'z' ё рақам аз 1 то 9:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'! ! ! ! x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як ҳарф аз 'a' то 'z' ё ҳарф аз 'A' то 'Z':

php<?php
  $str = 'xax xBx xcx x5x x@x';
  $res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'! ! ! x5x x@x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳар як ҳарф аз 'a' то 'z' ё рақамҳои 1, 2:

php<?php
  $str = 'xax xbx x1x x2x x3x';
  $res = preg_replace('#x[a-z12]x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'! ! ! ! x3x'

Мисол

Дар ин мисол шаблони ҷустуҷӯ ба ин намуд аст: байни иксҳо ҳарфҳо аз 'a' то 'z' дар миқдори аз 1 ва зиёд:

php<?php
  $str = 'xx xabesx xaadx x123x xa3x';
  $res = preg_replace('#x[a-z]+x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'xx ! ! ! x123x xa3x'

Мисол

Биёед чунон кунем, ки миқдори ҳарфҳо метавонад сифр низ бошад:

php<?php
  $str = 'xx xabesx xaadx x123x xa3x';
  $res = preg_replace('#x[a-z]*x#', '!', $str);
?>

Дар натиҷа ба тағирёбанда зерин сабт хоҳад шуд:

php'! ! ! x123x xa3x'

Вазифаҳои амалӣ

Задание 1

Сатр дода шудааст:

php<?php
  $str = 'aba aea aca aza axa';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарфи 'b', 'e' ё 'x'.

Задание 2

Сатр дода шудааст:

php<?php
  $str = 'a1a a3a a7a a9a aba';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - рақам аз 3-ум то 6-ум.

Задание 3

Сатр дода шудааст:

php<?php
  $str = 'aba aea afa aha aga';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарф аз a то g.

Задание 4

Сатр дода шудааст:

php<?php
  $str = 'aba aea afa aha aga';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарф аз a то f ва аз j то z.

Задание 5

Сатр дода шудааст:

php<?php
  $str = 'aAa aea aEa aJa a3a';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарф аз a то f ва аз A то D.

Задание 6

Сатр дода шудааст:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарфҳои хурди лотинӣ, дигарҳоро ба кор нагирифта.

Задание 7

Сатр дода шудааст:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарфҳои хурд ва калони лотинӣ , дигарҳоро ба кор нагирифта.

Задание 8

Сатр дода шудааст:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Ибораи муқаррариеро нависед, ки бо шаблони зерин меёбад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ҳарфҳои хурди лотинӣ ва рақамҳо, дигарҳоро ба кор нагирифта.