Ծանոթություն PHP-ում կանոնավոր արտահայտություններին

Կանոնավոր արտահայտությունները հրամաններ են բարդ որոնման և փոխարինման համար: Դրանք թույլ են տալիս անել շատ հետաքրքիր բաներ, բայց, դժբախտաբար, բավականին դժվար են յուրացման համար:

Կան PHP-ի մի քանի ֆունկցիաներ կանոնավոր արտահայտությունների հետ աշխատելու համար: Մենք կսկսենք ծանոթանալ դրանց հետ preg_replace ֆունկցիայի օրինակով: Այս ֆունկցիան առաջին պարամետրով ընդունում է՝ ինչ փոխել, իսկ երկրորդով՝ ինչով փոխել, իսկ երրորդ պարամետրով - տողը, որում անհրաժեշտ է փոխարինել.

php<?php
  preg_replace(ինչ փոխել, ինչով, տող);
?>

Այս դեպքում առաջին պարամետրով մեր ֆունկցիան ընդունում է ոչ միայն պարզ տող, այլ կանոնավոր արտահայտություն, որը ներկայացնում է հրամանների հավաքածուով տող, տեղակայված ցանցային # նիշերի ներսում: Այս ցանցերը կոչվում են սահմանազատիչներ կանոնավոր արտահայտությունների:

Սահմանազատիչներից հետո կարելի է գրել մոդիֆիկատորներ - հրամաններ, որոնք փոխում են կանոնավոր արտահայտության ընդհանուր հատկությունները:

Իրենք կանոնավոր արտահայտությունները բաղկացած են երկու տիպի նիշերից. նրանցից, որոնք նշանակում են ինքն իրենց և նիշեր-հրամաններից, որոնք կոչվում են հատուկ նիշեր:

Տառերն ու թվերը նշանակում են ինքն իրենց: Հաջորդ օրինակում մենք կանոնավոր արտահայտության միջոցով կփոխարինենք 'a' տառը '!'-ով.

php<?php
  preg_replace('#a#', '!', 'bab'); // կվերադարձնի 'b!b'
?>

Սակայն կետը հատուկ նիշ է և նշանակում է ցանկացած նիշ: Հաջորդ օրինակում մենք կգտնենք տող ըստ այսպիսի հատկանիշի. 'x' տառը, ապա ցանկացած նիշ, ապա կրկին 'x' տառը.

php<?php
  preg_replace('#x.x#', '!', 'xax eee'); // կվերադարձնի '! eee'
?>
Задание 1

Տրված է տող.

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

Գրեք կանոնավոր արտահայտություն, որը կգտնի 'ahb', 'acb', 'aeb' տողերը ըստ հատկանիշի. 'a' տառը, ցանկացած նիշ, 'b' տառը.

Задание 2

Տրված է տող.

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

Գրեք կանոնավոր արտահայտություն, որը կգտնի 'aeeb', 'adcb', 'axeb' տողերը ըստ հատկանիշի. 'a' տառը, երկու ցանկացած նիշ, 'b' տառը.